将获取的数据存储在父组件中,什么是标准的React惯例?

时间:2018-09-02 00:51:35

标签: javascript reactjs rest fetch

在父组件中存储数据以传递给React中的子组件的常见做法是什么?例如:

export default class Main extends Component{
    async componentWillMount(){
         let data = await fetch(some data);
    }
}

如果我计划将“ let数据”传递给子组件,应该将其存储在哪里?我不想将其置于一种状态,因为我觉得它仅在需要重新渲染时才使用。以上也是获取数据的正确方法吗?假设我刚刚登录,并且在我重定向到这个Main类时,我希望它获取数据然后进行渲染。什么是标准做法?

1 个答案:

答案 0 :(得分:1)

应该要进入状态。当然,状态更改时它将重新呈现,这要归功于此,您的子组件在获得新道具时也会更新。除此之外,您无法更新子组件。这是正确的方法。

您可以在componentDidMount中获取数据,因为在以后的版本(v17)中将不推荐使用componentWillMount。因此,您在那里获取数据而不是设置状态:

export default class Main extends Component{
    async componentDidMount(){
         let data = await fetch(some data);
         this.setState({data: some data});
    }
}