反应,在渲染之前调用一个函数

时间:2020-08-20 13:46:03

标签: reactjs react-native

我有一个异步函数要在渲染之前调用

(异步函数获取firebase RemoteConfig,我想在渲染时使用该值)

现在,我具有以下结构

async componentDidMount() {
  await remoteConfig.fetch() 
}

问题在于,fetch调用不能保证在render之前被调用(在我的测试中)

如何确保在render()之前获取数据?

1 个答案:

答案 0 :(得分:0)

如果您想在渲染之前执行功能,我认为还有其他类似getDerivedStateFromProps的钩子。但是通常不建议在渲染之前调用api。使用componenDidMount很好,您应该像下面这样构造代码:

componentDidMount(async () => {const res = await fetch(//your api)})

收到数据后,您将调用this.setState来更新状态并做出反应,将自动更新用户界面