Javascript 为什么子组件没有得到父组件';在React中使用Axios的s道具 我用这样一个简单的标志来解决它: 我在states对象上添加了一个新的标志属性:loaded:false
当我获得数据时,我将加载的Javascript 为什么子组件没有得到父组件';在React中使用Axios的s道具 我用这样一个简单的标志来解决它: 我在states对象上添加了一个新的标志属性:loaded:false,javascript,http,reactjs,asynchronous,axios,Javascript,Http,Reactjs,Asynchronous,Axios,当我获得数据时,我将加载的值更新为true,如下所示: helpers.getValues().then(results => this.setState({values:results.data,loaded:true})); 最后,在render()中,我首先检查加载的是否为true,然后渲染子组件,如下所示: {this.state.loaded == true ? <ChildComponent values={this.state.values} name="theo
值更新为true,如下所示:
helpers.getValues().then(results => this.setState({values:results.data,loaded:true}));
最后,在render()
中,我首先检查加载的是否为true
,然后渲染子组件,如下所示:
{this.state.loaded == true ? <ChildComponent values={this.state.values} name="theodore"/> : ''}
这里我展示了ChildComponent(在一个单独的js文件中)。
在组件didmount中,我试图展示道具,但得到它的对象如下:
{值:'',测试:'ok'}
var ChildComponent = React.createClass({
componentDidMount:function(){
console.log(this.props);
},
render:function(){
return(
<div>
<ul>'nothing'</ul>
</div>
)
}
});
var ChildComponent=React.createClass({
componentDidMount:function(){
console.log(this.props);
},
render:function(){
返回(
“什么都没有”
)
}
});
我猜这是一个延迟问题,其中chld组件在axios异步从服务器返回数据之前加载
感谢处理过类似情况的人提供的任何帮助。因为您将this.state.movies
,而不是this.state.values
传递给ChildComponent
你是如何做到的:
<ChildComponent1 values={this.state.movies} test="ok"/>
<ChildComponent1 values={this.state.values} test="ok"/>
应该是怎样的:
<ChildComponent1 values={this.state.movies} test="ok"/>
<ChildComponent1 values={this.state.values} test="ok"/>
在结果从服务器返回之前,我们不允许子组件渲染,这是一个明显的异步问题。好的。但在您的示例中,您的状态中没有movies属性,但您将其传递给孩子。电影从何而来?即使您的孩子在从服务器返回请求数据之前渲染,它也应该在执行然后承诺块时再次渲染,因为您正在状态中设置一个值,每次状态更改时,react组件都会渲染。是的,我以前注意到了这一点,但在childcomponent上,我曾经做过映射()创建列表,我得到了错误!也许我应该在那里添加一个if语句,我不知道。但现在我需要它,它就可以工作了。谢谢,您需要添加一个if条件来检查值是否为空。