首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未呈现React json数组

未呈现React json数组
EN

Stack Overflow用户
提问于 2021-04-23 06:31:21
回答 2查看 35关注 0票数 0

我从post请求中填写了我的myArray。我想用这些值动态填充表,但它不会呈现任何内容。

代码语言:javascript
运行
复制
class Reports extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      
      id:"",
      myArray: [],
}
}

componentDidMount(e) {
    console.log("fetching")
    fetch('/getMetaReport', {
      method: 'post',
      headers: {'Content-Type':'application/json', 'Accept': 'application/json'},
      body: JSON.stringify({id: 7}),
    }).then(res => res.json()).catch(error => {
      console.error('Error:', error);
  })
  .then(response => {
      console.log(response);
      this.state.myArray.push(response);
      console.log(this.state.myArray)
      
  }) 
  }

我可以在控制台中打印值,但是我不能用它们填充表。

代码语言:javascript
运行
复制
    return (
      <div className={s.root}>
        <h2 className="page-title" style={{color: "black"}}>
          Reports
        </h2>
        
<table>
                <thead>
                <tr>
                    <th>ID</th>
                    <th>Title</th>
                    <th>Date</th>
                </tr>
                </thead>
                <tbody>
                    {
                        this.state.myArray.map((item) => (
                            <tr key={item.id}>
                                <td>{item.id}</td>
                                <td>{item.title}</td>
                                <td>{item.date}</td>
                                <td/>
                            </tr>
                        ))
                    }
                </tbody>
            </table>
        
      </div>
    )
  }

为什么它什么都不呈现,我如何用JSON数组中的值动态填充我的表?提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2021-04-23 06:38:42

你不是在触发重现。尝尝这个

this.setState({'myArray': [...this.state.myArray, response]})

票数 0
EN

Stack Overflow用户

发布于 2021-04-23 06:58:25

虽然Cody E提到的内容是正确的,但如果您想将新项‘推入’到现有数组中(而不是替换整个数组),最好的方法是使用prevState参数。否则你可能会发现副作用。

代码语言:javascript
运行
复制
this.setState((prevState) => {
  return { myArray: [...prevState.myArray, ...response] }
})

更多信息请点击这里:https://reactjs.org/docs/state-and-lifecycle.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67221613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档