Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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
Javascript 对象无效问题_Javascript_Ruby On Rails_Reactjs - Fatal编程技术网

Javascript 对象无效问题

Javascript 对象无效问题,javascript,ruby-on-rails,reactjs,Javascript,Ruby On Rails,Reactjs,我有一个与React.js主教程非常相似的组件。基本上,我有一个api,我从中提取并尝试加载数据: var Box = React.createClass({ getInitialState: function () { return { data: { items: [] } }; }, loadStuffFromServer: function() { $.ajax({

我有一个与React.js主教程非常相似的组件。基本上,我有一个api,我从中提取并尝试加载数据:

var Box = React.createClass({
   getInitialState: function () {
      return {
        data: {
          items: []
       }
      };
   },
   loadStuffFromServer: function() {
      $.ajax({
         url: this.props.url,
         dataType: 'json',
         cache: false,
         success: function(data) {
            this.setState({data: data});
         }.bind(this),
         error: function(xhr, status, err) {
            console.error(this.props.url, status, err.toString());
         }.bind(this)
     });
  },
  componentDidMount: function() {
    this.loadStuffFromServer();
  },
  render: function() {
    var blah = this.state.data;
    return (
       <div>
           { blah }
       </div>
    );
  }
});
var-Box=React.createClass({
getInitialState:函数(){
返回{
数据:{
项目:[]
}
};
},
loadStuffFromServer:函数(){
$.ajax({
url:this.props.url,
数据类型:“json”,
cache:false,
成功:功能(数据){
this.setState({data:data});
}.绑定(此),
错误:函数(xhr、状态、错误){
console.error(this.props.url,status,err.toString());
}.绑定(此)
});
},
componentDidMount:function(){
此参数为.loadStuffFromServer();
},
render:function(){
var blah=this.state.data;
返回(
{blah}
);
}
});
然而,当我把blah放在那里时,我得到了一个错误:
uncaughterror:invalization:Objects作为React子对象无效(find:objectwithkeys{items})。如果要呈现子对象集合,请改用数组,或使用React附加组件中的createFragment(object)包装对象。选中
框的渲染方法

我使用react rails调用我的组件,并使用
数组
数据项
)而不是
对象

var blah = this.state.data.items;
__________________________^^^^^^___


render: function () {
   var blah = this.state.data.items.map(function (item) {
     return <p>
       { item.content }
     </p>;
   });

   return <div>
     { blah }
   </div>;
}
var blah=this.state.data.items;
__________________________^^^^^^___
渲染:函数(){
var blah=this.state.data.items.map(函数(项){
返回
{item.content}

; }); 返回 {blah} ; }
除了Alexander所说的,您不必为变量赋值。您可以直接在div标记内执行

<div> { this.state.data.items } <div>
{this.state.data.items}
并使用.map获取值

{this.state.data.items.map(objval =>
  <div>
   {objval.name}
  </div>
)}
{this.state.data.items.map(objval=>
{objval.name}
)}

希望有帮助:)

不幸的是,这并不能解决问题?@我创建了一个小示例,您只需要在其中添加ajax请求