Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript can';t pass参数响应本机5.x_Javascript_Android_React Native - Fatal编程技术网

Javascript can';t pass参数响应本机5.x

Javascript can';t pass参数响应本机5.x,javascript,android,react-native,Javascript,Android,React Native,我不知道为什么,但是程序stats.js无法读取SearchScreen.js传递的参数 有人能帮我吗 SearchScreen.js const SearchScreen =({navigation}) => { const [name, SetName] = React.useState(); return ( <View style={styles.container}> <TextInput

我不知道为什么,但是程序stats.js无法读取SearchScreen.js传递的参数 有人能帮我吗

SearchScreen.js

const SearchScreen =({navigation}) => {
const [name, SetName] = React.useState();
    return (
        <View style={styles.container}>
        <TextInput
                    style={styles.inputText}
                    placeholder="Name of the restaurant..."
                    placeholderTextColor="#003f5c"
                    onChangeText={text => SetName(text)}
                    //onSubmitEditing={ () => this.state.navigate('InsertEmailAddress', name)}
                    />
                    <Text> {name} </Text>
                    <TouchableOpacity
                   onPress={() => {navigation.setParams(name), navigation.navigate('Stats', name)}}>
                  <Text >continue</Text>
                </TouchableOpacity>
        </View>
    );
};
const StatsScreen = ({route, navigation}) => {
    return (
        <View style={styles.container}>
            <Text> Stats Screen </Text>
              <Text>{route.params}</Text>
        </View>
    );
};

const SearchScreen=({navigation})=>{
const[name,SetName]=React.useState();
返回(
集合名(文本)}
//onSubmitEditing={()=>this.state.navigate('InsertEmailAddress',name)}
/>
{name}
{navigation.setParams(名称),navigation.navigate('Stats',name)}>
持续
);
};
Stats.js

const SearchScreen =({navigation}) => {
const [name, SetName] = React.useState();
    return (
        <View style={styles.container}>
        <TextInput
                    style={styles.inputText}
                    placeholder="Name of the restaurant..."
                    placeholderTextColor="#003f5c"
                    onChangeText={text => SetName(text)}
                    //onSubmitEditing={ () => this.state.navigate('InsertEmailAddress', name)}
                    />
                    <Text> {name} </Text>
                    <TouchableOpacity
                   onPress={() => {navigation.setParams(name), navigation.navigate('Stats', name)}}>
                  <Text >continue</Text>
                </TouchableOpacity>
        </View>
    );
};
const StatsScreen = ({route, navigation}) => {
    return (
        <View style={styles.container}>
            <Text> Stats Screen </Text>
              <Text>{route.params}</Text>
        </View>
    );
};

const statscreen=({route,navigation})=>{
返回(
统计屏幕
{route.params}
);
};
试试这个

navigation.navigate('Stats',{name});
尝试使用默认值启动:

const [name, SetName] = React.useState("");

如果您设计的堆栈导航器具有如下路由

const Stack = createStackNavigator();

<Stack.Navigator>
  <Stack.Screen name="SearchScreen" component={SearchScreen} />
  <Stack.Screen name="Stats" component={StatsScreen} />
</Stack.Navigator>
const Stack=createStackNavigator();
这将获得从第一个屏幕到第二个屏幕的参数。如果两个屏幕落在同一堆栈下

const SearchScreen = ({ navigation }) => {
  const [name, SetName] = React.useState('');
  return (
    <View style={styles.container}>
      <TextInput
        value={name}
        style={styles.inputText}
        placeholder="Name of the restaurant..."
        placeholderTextColor="#003f5c"
        onChangeText={(text) => SetName(text)}
        //onSubmitEditing={ () => this.state.navigate('InsertEmailAddress', name)}
      />
      <Text> {name} </Text>
      <TouchableOpacity
        onPress={() => {
          navigation.navigate('Stats', name);
        }}>
        <Text>continue</Text>
      </TouchableOpacity>
    </View>
  );
};
const SearchScreen=({navigation})=>{
const[name,SetName]=React.useState(“”);
返回(
集合名(文本)}
//onSubmitEditing={()=>this.state.navigate('InsertEmailAddress',name)}
/>
{name}
{
导航。导航('Stats',name);
}}>
持续
);
};
const statscreen=({route,navigation})=>{
返回(
统计屏幕
{route.params}
);
};

如果您有一个嵌套的导航器,则有一个传入的参数rest,一切都保持不变。

与以前相同的结果,参数没有显示:(不要使用“navigation.setParams(name)”只使用“navigation.navigate('Stats',{name:name});“React navigation 5.x路由参数,即使我写:onPress={()=>{navigation.navigate('Stats',{name:name})参数仍然没有显示“name”参数中包含的内容?它是否未定义?显示的是什么{route.params}?它不应该是嵌套的导航器_