【问题标题】:Storing fetched data in parent component, what is standard React practice?将获取的数据存储在父组件中,什么是标准的 React 实践?
【发布时间】:2018-09-02 00:51:34
【问题描述】:
在 React 中将数据存储在父组件中以传递给子组件的常见做法是什么?例如:
export default class Main extends Component{
async componentWillMount(){
let data = await fetch(some data);
}
}
如果我打算将“让数据”传递给子组件,应该将其存储在哪里?我不想把它变成一个状态,因为我觉得它只用于你需要重新渲染的时候。以上是获取数据的正确方法吗?假设我刚刚登录,当我重定向到这个 Main 类时,我希望它获取数据然后渲染。什么是标准做法?
【问题讨论】:
标签:
javascript
reactjs
rest
fetch
【解决方案1】:
你应该想把它放入状态。当然,它会在状态更改时重新渲染,这要归功于您的子组件在获得新道具时会更新。除此之外,您无法更新您的子组件。这是正确的做法。
您可以在 componentDidMount 中获取数据,因为 componentWillMount 将在未来的版本 (v17) 中被弃用。所以,你在那里获取数据而不是设置你的状态:
export default class Main extends Component{
async componentDidMount(){
let data = await fetch(some data);
this.setState({data: some data});
}
}