警告:componentWillReceiveProps 已重命名,不建议使用
Warning: componentWillReceiveProps has been renamed, and is not recommended for use
我用createBottomTabNavigator
.
在我的class
const Tab = createBottomTabNavigator({
MainScreen: { screen: MainScreen },
SecondScreen: { screen: SecondScreen }
});
const Container = createAppContainer(Tab);
export default class App extends React.Component {
state = {
isReady: false
};
componentDidMount = () => {
this._load();
};
render() {
const { isReady } = this.state;
if (!isReady) {
return <AppLoading />;
}
return <Container />;
}
_load = async () => {
try {
this.setState({ isReady: true });
} catch (error) {}
};
}
这是我的package.json
"dependencies": {
"expo": "~36.0.0",
"react": "^16.12.0",
"react-dom": "~16.9.0",
"react-native-gesture-handler": "^1.5.2",
"react-native-web": "~0.11.7",
"react-navigation": "3.0.8"
}
这是我的错误
Warning: componentWillReceiveProps has been renamed, and is not recommended for use.
* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps.
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.
Please update the following components: SafeView
我做了 npx react-codemod rename-unsafe-lifecycles
但没用。
即使在使用 react-navigation
3.x 和最新的 React 版本后,它仍然会发生,因为 react-navigation
依赖于 "@react-navigation/native": "^3.6.2"
,它使用 "react-native-safe-area-view":"0.11"
,其中 [=14] =] 使用已弃用的方法。
4.0.x version of @react-navigation/native uses 0.14 which has been updated
所以升级你的反应导航。希望能帮助到你。有疑问请随意
我用createBottomTabNavigator
.
在我的class
const Tab = createBottomTabNavigator({
MainScreen: { screen: MainScreen },
SecondScreen: { screen: SecondScreen }
});
const Container = createAppContainer(Tab);
export default class App extends React.Component {
state = {
isReady: false
};
componentDidMount = () => {
this._load();
};
render() {
const { isReady } = this.state;
if (!isReady) {
return <AppLoading />;
}
return <Container />;
}
_load = async () => {
try {
this.setState({ isReady: true });
} catch (error) {}
};
}
这是我的package.json
"dependencies": {
"expo": "~36.0.0",
"react": "^16.12.0",
"react-dom": "~16.9.0",
"react-native-gesture-handler": "^1.5.2",
"react-native-web": "~0.11.7",
"react-navigation": "3.0.8"
}
这是我的错误
Warning: componentWillReceiveProps has been renamed, and is not recommended for use.
* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps.
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.
Please update the following components: SafeView
我做了 npx react-codemod rename-unsafe-lifecycles
但没用。
即使在使用 react-navigation
3.x 和最新的 React 版本后,它仍然会发生,因为 react-navigation
依赖于 "@react-navigation/native": "^3.6.2"
,它使用 "react-native-safe-area-view":"0.11"
,其中 [=14] =] 使用已弃用的方法。
4.0.x version of @react-navigation/native uses 0.14 which has been updated
所以升级你的反应导航。希望能帮助到你。有疑问请随意