我有一个应用程序,我正在努力,我坚持一个部分。 我有一个组件,用于从服务器获取数据,然后我需要传递到另一个组件。
由于这可能是一个很大的负载,我不想使用全局变量来存储数据,然后在调用render时传递它,也不想将数据保存到状态,因为数据与App组件无关。
有没有办法可以将我从componentDidMount()收到的值传递给渲染函数并将其作为道具传递给所需的组件?
提前致谢!
*编辑:
// code
componentDidMount() {
// gets the data
}
redner() {
return <Node value={*Needs to be passed here*} />
}
此代码段完全在我的应用程序组件中。我需要将componentDidMount()中的数据传递给渲染而不使用状态或全局变量。
答案 0 :(得分:1)
render
时都会调用 props
函数。除非您在shouldComponentUpdate
中明确禁用它。因此,您应该获得props
函数中的所有render
更改(如果您正确更新道具)。
修改强>:
更新答案后,我希望我能正确理解问题。
在您的情况下,最好的方法是使用state
在异步承诺/回调和render
方法之间共享数据。通过this.setState
方法设置状态可确保重新呈现组件。
类似的东西:
// code
componentDidMount() {
// gets the data
this.state = {}; init state
axios.get("/data")
.then(response => this.setState({ data: response.data }));
}
redner() {
return <Node value={this.state.data} />
}