【问题标题】:How can i pass a param in the axios.get function?如何在 axios.get 函数中传递参数?
【发布时间】:2019-07-19 13:51:05
【问题描述】:

我试图通过一个组件传递一个道具。它可以工作,但我不能将值放在 axios.get 的 URL 中。 我在另一个组件中有相同的代码,它在那里工作。 希望有人能帮助我。

interface VideoProps {
    videoId: number
}

interface CommentState {
    comments: any,
    videoId: number
}

export default class ShowComments extends React.Component<VideoProps, CommentState>
{
constructor(props: CommentState) {
    super(props);

    this.state = {
        comments: [],
        videoId: this.props.videoId,
    };
}

componentWillMount(): void {
    const videoId = this.props.videoId;
    axios.get('/api/get/comments/'+ videoId)
        .then((response: any) => {
            console.log(response);
            this.setState({
                comments: response.data
            });
        });
}

【问题讨论】:

  • 不相关,但一般建议在cDM(不是cWM)中做异步操作。
  • 你从道具中得到正确的值吗?
  • 我得到了正确的值,是的
  • 确保您运行的是您认为的代码。这就是您的操作方式,因此,如果它不起作用,则说明有其他问题在起作用,或者此处实际上并未发生错误。例如,请求将在初始渲染后完成;你处理那个案子吗?

标签: reactjs typescript axios


【解决方案1】:
    axios.get(`/api/get/comments/${videoId}`, {
      params: {
        param1: 'param1',
      }
    })
    .then((response: any) => {
        console.log(response);
        this.setState({
            comments: response.data
        });
    });

另外,这也行不通:

this.state = {
    comments: [],
    videoId: this.props.videoId,
};

this.props在构造函数中应该是未定义的,使用props.videoId,不知道这是否会导致错误。

【讨论】:

  • 虽然 OP 确实声明“它有效,但我不能将值放在axios.get 的 URL 中”。 (这意味着他使用“它有效”这个词的方式与我不同。)
  • 哟,我的意思是得到videoId的正确值,但我不能在url中传递它
  • 感谢您对这个问题的关注。我刚开始编程,对不起。我只想将值添加到 url 以获得正确的路线
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多