将数据存储在要传递给React中的子组件的父组件中的常见做法是什么?例如:
export default class Main extends Component{
async componentWillMount(){
let data = await fetch(some data);
}
}
如果我打算将它传递给子组件,那么应该在哪里存储'let data'?我不想把它放到一个状态,因为我觉得它只用于你需要重新渲染的时候。以上是获取数据的正确方法吗?假设我刚刚登录,因为我正在重定向到这个Main类,我想让它获取数据然后渲染。什么是标准做法?
你应该想把它放到这个状态。当然,它会在状态发生变化时重新呈现,这要归功于你的子组件在获得新的道具时会更新。除此之外,您无法更新您的子组件。这是这样做的正确方法。
您可以在componentDidMount
中获取数据,因为componentWillMount
将在以后的版本中弃用(v17)。因此,您在那里获取数据而不是设置您的状态:
export default class Main extends Component{
async componentDidMount(){
let data = await fetch(some data);
this.setState({data: some data});
}
}