Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何在Nextjs中使用链接获取数据

如何在Nextjs中使用链接获取数据
EN

Stack Overflow用户
提问于 2020-03-09 09:54:51
回答 1查看 1.1K关注 0票数 0

我的数据存储在蒙戈地图集中。我可以获取数据( post ),但是当我单击post时,它没有提供ID的数据,我已经创建了一个页面/post页面。由于下面的代码在postlist.tsx中,我只能查看帖子的ID,并且只能通过其url将id传递到下一页。我也希望能够查看与该特定ID相关的帖子的标题和正文:

这是我的blogs.tsx

代码语言:javascript
代码运行次数:0
复制
    interface PostState{
        posts: Post[];
    }

    export default class PostList extends React.Component <{},PostState> {
            state = {
                posts: []
            };

            componentDidMount = () => {
                this.getBlogPost();
            };

            getBlogPost = () => {

                axios
                    .get('/api')
                    .then(({data}) => {
                        const reverseData = new Array;
                        for (let datetime = data.length - 1; datetime >= 0; datetime--) {
                            reverseData.push(data[datetime]);
                        }
                        this.setState({posts: reverseData})
                    })
                    .catch((error) => {
                        alert('Error: there was an error processing your request')
                    })
            }

            displayBlogPost = (posts : Post[]) => {
                const currentDateTime = new Date();
                if (!posts.length) 
                    return null;

                return posts.map((post, index) => (
                    <div key={index}>
                        <Card>
                        <Title> 

                            <Link href={`/post?id=${post._id}`} as= . 
       {`/post/${post._id}`}></Title>
                        {/* <p>{post.date}</p>
                        <p>{post.name}</p> */}

                        <FullName>{`${post.name} | 
       ${dateToString(currentDateTime)}`}</FullName>
                        <Line />
                        <Question >{post.body}</Question>
                        </Card>
                    </div>
                ));
            }

            render() {
                return (
                    <div>
                        <Container>
                        <Headers/>
                        <div className="blog">
                            {this.displayBlogPost(this.state.posts)}
                        </div>                   
                        </Container>
                    </div>

                );
            }

    }
EN

回答 1

Stack Overflow用户

发布于 2020-03-10 00:58:58

首先,您应该创建Post 路由

页面/post/index.js

代码语言:javascript
代码运行次数:0
复制
import React from 'react'

class Post extends React.Component {
  static async getInitialProps({ query }) {
    return { query };
  }

  render() {
    return <div>id: {this.props.query.id}</div>
  }
}

export default Post

然后创建页面/post/id.js

代码语言:javascript
代码运行次数:0
复制
import Post from './index'
export default Post

现在,当您打开localhost:port/post/22localhost:port/post?id=22时,它应该显示数字22。

若要链接到另一页中的帖子,可以创建以下链接:

代码语言:javascript
代码运行次数:0
复制
<Link href={`/post?id=${id}`} as={`/post/${id}`}>
  <a>{title}</a>
</Link>

如果这仍然不起作用,那么请向我们展示代码(在github上)。

如果它有效,那么现在您可以将id传递到post页面,因此只需要获取post。您可以在getInitialProps中这样做。

代码语言:javascript
代码运行次数:0
复制
class Post extends React.Component {
  static async getInitialProps({query}) {
    const post = await axios.get(url, { // make sure the url is full url, no relative urls
      params: {
        id: query.id
      }
    })
    return { post: post.data }
  }

  render() {
    return (
      <pre>
        post:{' '}
        {JSON.stringify(this.props.post, undefined, 2)}
      </pre>
    )
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60605962

复制
相关文章
WebService_04_JS调用WebService
在之间的介绍中提到过,WebService的底层数据传输本质上就是一种特殊逇HTTP的POST请求。
Learning_斌
2019/09/05
1.9K0
动态调用WebService
http://linglong117.blog.163.com/blog/static/277145472009127514463/
跟着阿笨一起玩NET
2018/09/19
1.5K0
使用axis调用WebService,Java WebService调用工具类
能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据 WebService 规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。
全栈程序员站长
2022/11/02
1.6K0
python调用webservice接口_webservice应用实例
最近在搞基于python的webservice项目,今天为把环境给配好,折腾了不少时间,还是把配的过程记录下来,以后备用:
全栈程序员站长
2022/11/08
2.5K0
cxf框架调用webservice_webservice json
Ant做为一种工具已经广泛被使用,并且历史悠久。 使用ant的内置命令,可以编译java源文件(javac),运行java文件(java),给class文件打包(jar、war、ear), 也可以创建(mkdir)、删除(del)、拷贝(copy),甚至可以使用ant执行sql文件。 由于ant是用xml语言写成的文件,并取默认名为build.xml文件。 所以,今后大家应该在见到名为build.xml文件时知道这是一个ant的文件。
全栈程序员站长
2022/09/29
1.9K0
cxf框架调用webservice_webservice json
java调用WebService(一)
因工作需要和一个Sap相关系统以WebService的方式进行接口联调,之前仅听过这种技术,但并没有实操过,所以将本次开发相关的踩坑进行记录
matinal
2023/10/13
7510
WebService系列之HttpClient调用WebService接口
测试工具下载soapui测试 http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl package com.extra.credit.ut
SmileNicky
2021/03/17
4.8K0
WebService系列之HttpClient调用WebService接口
Flex 中调用 WebService
import mx.rpc.events.*; import mx.rpc.AbstractOperation; import mx.rpc.soap.WebService; import mx.rpc.*; import mx.controls.*; private function UserLogin(user:String,pass:String):void{                  var ws:WebService = new WebService();          
用户3135539
2018/09/12
6850
ABAP调用CIS webservice
FUNCTION ZMLSCP1_FR0008. *"----------------------------------------------------------------------*"*"本地接口: *" IMPORTING*" VALUE(I_EBELN) TYPE EBELN OPTIONAL*" VALUE(I_MATNR) TYPE MATNR OPTIONAL*" EXPORTING*" VALUE(O_STATU) TYPE CHAR1*"
matinal
2020/11/27
6830
JaxWsProxyFactoryBean调用WebService实例[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162672.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/13
2.1K0
Python调用webservice接口
from suds.client import Client url = "http://218.90.174.179:50038/JmYfjzService/clientRegisterServi
py3study
2020/01/10
3.8K0
PHP调用Webservice实例[通俗易懂]
NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService。它是一个开源软件,是完全采用PHP语言编写的、通过HTTP收发SOAP消息的一系列PHP类,由NuSphere Corporation(http://dietrich.ganx4.com/nusoap/ )开发。NuSOAP的一个优势是不需要扩展库的支持,这种特性使得NuSoap可以用于所有的PHP环境,不受服务器安全设置的影响。  
全栈程序员站长
2022/09/13
2.6K0
ABAP调用外部WebService
有两种方式 一种就是网上流传的 下面转载内容 TCode:se80 选择 Package,输入我们自己的开发包,后回车 右击 开发包名称,选择菜 出现创建向导窗口 选择”Service Consume
matinal
2020/11/27
1.8K0
WebService入门初使用(二)调用WebService服务
上一节记录完WebService的创建,鉴于篇幅所致,将调用部分单独拿到本节,所调用WebService服务基于上一章节内容。
WindCoder
2018/09/20
1.7K0
WebService入门初使用(二)调用WebService服务
java webservice asmx_WebService-asmx后缀接口调用[通俗易懂]
简述:.asmx是webservice服务程序的后缀名,ASP.NET 使用.asmx 文件来对Web Services的支持。.asmx 文件和.aspx文件一样都属于文本文件。它包含在.aspx文件之中,成为ASP.NET应用程序的一部分。
全栈程序员站长
2022/07/01
2.1K0
java开发webservice接口_webservice接口的开发和调用
1、定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所有方法,如下所示:
全栈程序员站长
2022/09/13
3.2K0
java开发webservice接口_webservice接口的开发和调用
delphi调用webservice问题总结
1.把WSDL的URL地址放到了HTTPRIO的WSDLLocation参数中,然后选择service和port 2.最近一个项目用到了delphi调用C#写的web服务的功能。用了一天的时间找原因,终于测试通过了。 这是一个通过web服务把一个照片上传到网站指定位置的方法。先测试了N次都不成功,通过跟踪发现delphi根本没传过来任何值,通过查资料发现VS2005 默认是用的 SoapDocumentProtocol而Delphi 是使用的 SoapRpcProtocol.这会造成所以客户端传过去的字
Vaccae
2019/07/24
2.4K0
java调用php的webService
1.首先先下载php的webservice包:NuSOAP,自己到官网去下载,链接就不给出来了,自己去google吧
黄啊码
2020/05/29
1.8K0
Axis调用Webservice添加SoupHeader
Axis全称Apache eXtensible Interaction System,是apache组织下的一个开源项目,用来做webservice开发的,有java版的实现,也有c++版的实现,其前身最早是IBM的SOAP4J,后来捐给Apache后改名Apache SOAP,也就是支持SOAP1.1的那个版本,到现在的AXIS已经是第三代了,AXIS对Apache SOAP的改进有很多,比如用SAX代替以前的DOM,增加对WSDL的支持,支持SOAP1.2等等
JQ实验室
2023/01/12
1.2K0
点击加载更多

相似问题

多次调用webservice

22

宏Webservice Libre Office -多次调用

113

HandleAuthenticateAsync被多次调用

175

事件多次被调用。

14

LocationListener被多次调用

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档