Reactjs 如何从rails获取json数据以响应js?

Reactjs 如何从rails获取json数据以响应js?,reactjs,Reactjs,我曾尝试使用ajax调用从rails获取数据以作出反应,但状态没有更新。当我试图调用state时,它给了我一个错误,它是未定义的。我在堆栈溢出中提到了其他问题,但无法解决我的问题。这是我的ajax请求 fetchData:function(){ $.ajax({ url:“/orders”, 数据类型:“json”, 键入:“GET”, 成功:功能(结果){ this.setState({orders:result}); }.绑定(此), 错误:函数(xhr、状态、错误){ console.er

我曾尝试使用ajax调用从rails获取数据以作出反应,但状态没有更新。当我试图调用state时,它给了我一个错误,它是未定义的。我在堆栈溢出中提到了其他问题,但无法解决我的问题。这是我的ajax请求

fetchData:function(){
$.ajax({
url:“/orders”,
数据类型:“json”,
键入:“GET”,
成功:功能(结果){
this.setState({orders:result});
}.绑定(此),
错误:函数(xhr、状态、错误){
console.error(this.props.url,status,err.toString());
}.绑定(此)
});
}

过滤器

{ Object.keys(this.state.orders).map(函数(键){ 返回{this.state.orders[key]} },本页) }
错误表示您正在尝试渲染对象,这是不可能的。问题可在此处找到:

return <div key={ key }>{this.state.orders[key]}</div>
返回{this.state.orders[key]}

如果您想呈现它,那么
this.state.orders[key]
应该是一个JSX元素或一个值(例如一个字符串),而事实似乎并非如此。我不知道你用
this.setState({orders:result})给
orders
分配了什么。如果您向我们显示
result
的值,我们可能会提供更多帮助,但现在的问题是
this.state.orders[key]
是一个对象。

您试图将order对象呈现为字符串。我不喜欢那样。尝试仅渲染一个值,而不是整个
顺序
对象,例如:

类示例扩展了React.Component{
构造函数(){
超级();
this.state={顺序:{
第一个:{id:311,名字:'Eric'},
第二个:{id:420,名字:'Andre'},
}};
}
render(){
返回(
{
Object.keys(this.state.orders).map(函数(键){
返回{this.state.orders[key].id}
},本页)
}
);
}
}
ReactDOM.render(,document.getElementById('View'))


请提供有关react组件和错误的更多详细信息。定义的错误可能意味着null或不正确的json返回
return <div key={ key }>{this.state.orders[key]}</div>