错误
我有一个适用于iOS的应用程序,但Android版本在周末不知怎么坏了。周末前我有一个工作应用程序,今天我打开了这个应用程序,我还必须检查安卓版本,但它不工作。我评论了App.tsx中的所有代码,基本上我在那里有一个简单的测试。
你们知道我该怎么解决这个问题吗?
感谢
出现此问题的原因应该是连续调用setState({})函数。例如考虑以下来自类组件的代码片段
class MyComponent() {
componentDidUpdate() {
this.setState({ someStateVariable: someValue })
}
}
这是setState({})将被一次又一次调用的地方之一。
如果您正在使用功能组件,请检查useEffect(()=>{})小心地执行函数,并避免在useEffect(()=>{}),没有任何条件。还要避免在任何函数之外进行任何状态更新。
例如,
const MyFunction(props) => {
useEffect(()=> {
setSomeStateVariable(someValue);
});
}
这是一个开放的useEffect,没有任何参数,组件中的每一次更改都会调用它,所以我们不能在没有任何条件的情况下使用状态更新。
此外,请检查是否有任何子组件不断更新其本地状态或父状态变量。
尽量避免使用多重useEffect(()=>{}),在功能组件中。