РЕДАКТИРОВАТЬ: для тех, кто спотыкается, не обращайте внимания на этот вопрос. С моей стороны это была простая ошибка. Совместное использование переменных React Hook между компонентами экрана работает нормально.
У меня есть свой App.js
файл следующим образом
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import Main from './src/Main';
import Game from './src/Game';
const Stack = createStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Main" component={Main} />
<Stack.Screen name="Game" component={Game} />
</Stack.Navigator>
</NavigationContainer>
)
}
Main.js
(соответствующие части)
export default function Main({ navigation }) {
const [username, setUsername] = useState(null);
...
<TextInput
mode='outlined'
label='Enter username here'
onChangeText={text => setUsername(text)}
/>
<Button
mode='contained'
onPress={() =>
navigation.navigate('Game', {'username': username})
}
>
Create
</Button>
...
Game.js
(соответствующие части)
export default function Game({ navigation, route }) {
return (
<View>
<Text>
{route.params.username}
</Text>
</View>
);
}
Как передать мою username
переменную состояния с помощью перехватчиков React из моего Main
компонента в мой Game
компонент? В настоящее время я получаю следующую ошибку в строке {route.params.username}
в Game.js
:
Объекты недопустимы в качестве дочерних React (найдено: объект с клавишами {replace, push, pop, popToTop, goBack, navigate, reset, setParams, dispatch, isFocused, canGoBack, dangerousGetParent, dangerousGetState, addListener, removeListener, setOptions}).
Я просто хочу передать самое последнее строковое значение username
после нажатия кнопки на экране Main
(который должен перейти к экрану Game
), но похоже, что переданное значение является объектом.
username
- person tlaminator   schedule 09.09.2020