我正在使用react-navigation实现两个屏幕。但是在导航到第二个页面时,我收到了以下警告:
警告:isMounted(...)在纯JavaScript类中已被弃用。相反,请确保在componentWillUnmount中清理订阅和挂起的请求,以防止内存泄漏。
版本信息:
- react: 16.3.1
- react-native: 0.55.2
- react-navigation: 1.5.11
- util: 0.10.3
Login.js
import React, { Component } from 'react';
import { Text, View, Image, TextInput, TouchableOpacity } from 'react-native';
import styles from "./styles";
export default class Login extends Component {
constructor(props) {
super(props);
}
render() {
const { navigate } = this.props.navigation;
return (
<View style={styles.container}>
<View style={styles.formContainer}>
<TouchableOpacity style={styles.button} onPress={()=> navigate('Home')} >
<Text style={styles.buttonText}>LOGIN</Text>
</TouchableOpacity>
</View>
</View>
)
}
主页.js
import React, { Component } from 'react';
import { Text, View } from 'react-native';
import styles from "./styles";
export default class Home extends Component {
constructor(props) {
super(props);
}
render() {
const { navigate } = this.props.navigation;
return(
<View style={styles.container}>
<Text>Home Screen</Text>
</View>
)
}
}
我在这里缺少什么?
isMounted
方法。尝试逐个删除它们,直到警告消失。我猜测是react-navigation
。你尝试安装最新版本了吗? - RayonPress={()=> navigate('Home')}
存在问题,因为当默认呈现主页而没有导航时,警告消失了。 - Javascript Hupp Technologiesreact-native-navigation
,但如果你不想本地实现导航,也可以使用react-native-router-flux
。 - Ray