首页 > 解决方案 > 接收屏幕之间的参数 React-Native

问题描述

我已经将参数发送到这样的屏幕:

var states = [
  {label: "happy", value: 1},
  {label: "sad", value: 2},
  {label: "angry", value: 3},
  {label: "relaxed", value: 4}
];

export default class App extends Component<Props> {
  state = { val: "8" }; // set state here
  render() {
    return (
      <View style={styles.container}>
          <Paragraph style={styles.textStyle}>How are you feeling today ?</Paragraph>
        <RadioForm
          radio_props={states}
          initial={2}
          onPress={(value) => {ToastAndroid.show(value.toString(), ToastAndroid.SHORT),this.setState({val:value})}}
          buttonSize={30}
          buttonOuterSize={40}
          selectedButtonColor={'blue'}
          selectedLabelColor={'blue'}
          labelStyle={{ fontSize: 15, }}
          disabled={false}
          formHorizontal={false}
          />
       
        <Button title="Submit" onPress={() => this.props.navigation.navigate('ButtonsScreen',{
              value: this.state.val})}/>

      </View>
    );
  }
}

现在我尝试接收它:

const Buttons = ({navigation}) => {

let param = this.props.navigation.getParam(value)

return (
  
  <View>
<Button title="Run Playlist" onPress={() => navigation.navigate('Playlist')}/>

</View>
);

};

但这给了我一个错误:“未定义不是对象(评估'_this.props.navigation')”有人知道出了什么问题吗?

标签: react-nativenavigationreact-native-androidgetparameter

解决方案


像这样试试

const Buttons = ({navigation, route}) => {

let param = route.params.value
....

推荐阅读