【发布时间】:2020-03-20 05:55:27
【问题描述】:
我在TypeError : props.navigation.getParam 上遇到的问题不是函数。在(props.navigation.getParam('name')。我正在使用reactNavigation version 5.x.,此代码在reactNavigation 3 中工作。我做错了什么?
这是我的代码
export default class ChatScreen extends Component {
static navigationOption = ({ navigation }) => {
return {
title: navigation.getParam('name', null)
}
}
constructor(props) {
super(props);
this.state = {
person:{
name:props.navigation.getParam('name'),
phone:props.navigation.getParam('phone'),
// name:'Raushan',
// phone:9931428888
},
textMessage: ''
};
}
状态部分值错误。 堆栈导航器
`
const Stack = createStackNavigator();
function App() {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Auth">
<Stack.Screen name="AuthLoading" component={AuthLoadingScreen} />
<Stack.Screen name="App" component={HomeScreen} options={{ title: 'Chats' }}/>
<Stack.Screen name="Chat" component={ChatScreen} options={({ route }) => ({ title: route.params.name })}/>
<Stack.Screen name="Auth" component={LoginScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
export default App;
`
和导航屏幕
onPress={()=>this.props.navigation.navigate('Chat',item)}
【问题讨论】:
-
您是否在构造函数和 navigationOptions 中检查了
navigation的值? -
检查反应导航版本我认为你使用的是 5.x,他们已经改变了这个功能看到这个reactnavigation.org/docs/params
-
如果您来自 v3 或 v4,React Navigation v5 有很多重大变化。阅读此
Upgrading from 4.x文档以详细了解库的更改。 reactnavigation.org/docs/upgrading-from-4.x
标签: react-native react-navigation