【问题标题】:How do render react in the browser渲染如何在浏览器中做出反应
【发布时间】:2016-10-28 15:59:17
【问题描述】:

我有一个函数可以像这样通过一些 promise 和 setState:

}).then((future_users) => {
      this.setState({future_users: future_users});
      console.log(this.state.future_users, 'tsf');
    });

这会注销一个包含 3 个对象的数组 在我的渲染方法中更进一步

<p><span id="users"></span></p>
{this.state.future_users.map(function(item){
  return (<span>{item}</span>);
})}

但是我得到一个错误说Objects are not valid as a React child 我可以在哪里将它们转换成字符串?

【问题讨论】:

  • 分享你的完整代码

标签: javascript html reactjs render


【解决方案1】:

如果你说的是真的,一个对象数组就是future_users,那么你正在尝试做&lt;span&gt; {object} &lt;span&gt; 这不会起作用,而是你需要将它设置为你想要显示的对象的任何属性。例如,如果您的用户有 userName 属性,您可以这样做:

<p><span id="users"></span></p> {this.state.future_users.map(function(item){ return (<span>{item.userName}</span>); })}

它会正常工作。您不能将对象本身放在渲染方法中。

【讨论】:

  • 是的,这很好。但它们都是相互连接而不是。 123、456、789。它正在做 123456789。我希望它们在彼此下方。我该怎么做?
  • 那是因为span是内联元素,所以用div代替
【解决方案2】:

您必须检查 this.state.future_users 是否包含加载的数据:

{this.state.future_users && this.state.future_users.map(function(item){
  return (<span>{item}</span>);
})}

【讨论】:

  • 这不会涵盖他报告的错误objects are not valid as a React child,如果地图中没有任何内容,则地图只会返回一个空数组,并且反应不会抱怨
猜你喜欢
  • 2021-02-22
  • 2016-06-10
  • 1970-01-01
  • 2019-10-28
  • 2013-10-11
  • 1970-01-01
  • 2020-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多