TypeError:props.navigation.getParam不是函数。在(props.navigation.getParam('name')

问题描述 投票:0回答:1

我在TypeError上遇到问题:props.navigation.getParam不是函数。在(props.navigation.getParam('名称')中。我正在使用reactNavigation版本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)}

react-native react-navigation
1个回答
0
投票

在类组件中,可以使用props关键字来访问this。所以试试这个:

export default class ChatScreen extends Component {
  static navigationOption = ({ navigation }) => {
    return {
      title: navigation.getParam('name', null)
    }
  }

  constructor(props) {
    super(props);
    this.state = {
      person: {
        name: this.props.navigation.getParam('name'), // access with this.
        phone: this.props.navigation.getParam('phone'), //access with this.
        // name:'Raushan',
        //   phone:9931428888
      },
      textMessage: ''
    };
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.