Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js results.map不是一个函数_Node.js_Reactjs_Api_Axios - Fatal编程技术网

Node.js results.map不是一个函数

Node.js results.map不是一个函数,node.js,reactjs,api,axios,Node.js,Reactjs,Api,Axios,我几乎要将axios响应结果显示到一个表中,但我一直得到错误。仍在学习如何反应。请参见下面的错误 这是为了显示表上的数据 常量{results}=值 { results.map(({id, title, description, budget}, index ) => { return ( <tr key={id}> <td>{id}</td>

我几乎要将axios响应结果显示到一个表中,但我一直得到错误。仍在学习如何反应。请参见下面的错误

这是为了显示表上的数据

常量{results}=值

{ results.map(({id, title, description, budget}, index ) => {
              return (
                <tr key={id}>
                  <td>{id}</td>
                  <td>{title}</td>
                  <td>{description}</td>
                  <td>{budget}</td>
                </tr>
              );
    })}
{results.map({id,title,description,budget},index)=>{
返回(
{id}
{title}
{说明}
{预算}
);
})}

我猜这里的问题是,在异步axios调用返回之前,
结果
将是
未定义的
,因此在渲染组件的最初几次尝试中,它试图在
未定义的
上调用
.map()

您可以在jsx中添加某种防护,如:

{ results && results.map(...) }

或者首先将您的
结果初始化为空数组,解析后重新分配给axios调用的结果。

axios发出异步请求:您需要从useEffect挂钩(或componentDidMount)调用它,如下所示:

另一个问题是,您没有检查请求是否已完成,状态是否已更新

{
  results &&
    results.map(({ id, title, description, budget }, index) => {
      return (
        <tr key={id}>
          <td>{id}</td>
          <td>{title}</td>
          <td>{description}</td>
          <td>{budget}</td>
        </tr>
      )
    })
}
{
结果&&
results.map({id,title,description,budget},index)=>{
返回(
{id}
{title}
{说明}
{预算}
)
})
}

最后,请求必须是一个数组才能使用array.prototype.map()。

请包含完整的组件代码,或者更好地使用创建可运行的示例。您是否在控制台中获得
日志成功--
输出?第一次渲染时,
值是否包含键/属性
结果
?欢迎使用StackOverflow!请阅读。仅使用代码的答案可能对OP或该答案的未来观众没有太大帮助。好的答案包括解释为什么这个答案有效以及OP出了什么错
useEffect(() => {
  axios.get(`${process.env.REACT_APP_API}/search-projects`).then(res => console.log(res))
})
{
  results &&
    results.map(({ id, title, description, budget }, index) => {
      return (
        <tr key={id}>
          <td>{id}</td>
          <td>{title}</td>
          <td>{description}</td>
          <td>{budget}</td>
        </tr>
      )
    })
}
const results = [];
if( Array.isArray( response.data ) ){
      setValues({...values, results: results});
};