react-native - 将异步存储与 React Navigation 结合使用(React Native)
问题描述
希望在移动应用程序中使用异步存储,但在将状态提升到“根”文件后,很难弄清楚如何通过导航将状态作为道具传递。
这是我发现的一个独立于导航的示例:
const [ "state", "setState" ] = useState(state);
...
return (
<Container>
<Home state={state} setState={setState}/>
</Container>
)
这是我用导航尝试过的:
const [ "state", "setState" ] = useState(state);
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name ='Home' >
{props => <Home state={state} setState={setState}/>}
</Stack.Screen>
</Stack.Navigator>
</NavigationContainer>
如果需要提供更多的上下文,会做 - 只是让我知道。提前致谢
解决方案
您可以在此处尝试的工作示例https://snack.expo.io/@vasylnahuliak/great-bubblegum
import 'react-native-gesture-handler';
import React, { useState } from 'react';
import { Text, View, StyleSheet, Button, FlatList } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
const HomeSceen = ({ route, navigation, counter, setCounter }) => {
return (
<View>
<Text>Counter: {counter}</Text>
<Button title="Increase" onPress={() => setCounter(prevCounter => prevCounter + 1)} color="green" />
<Button title="Decrease" onPress={() => setCounter(prevCounter => prevCounter - 1)} color="tomato" />
</View>
);
};
const Stack = createStackNavigator();
const App = () => {
const [counter, setCounter] = useState(0);
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="HomeSceen"
component={(props) => (
<HomeSceen counter={counter} setCounter={setCounter} {...props} />
)}
/>
</Stack.Navigator>
</NavigationContainer>
);
};
export default App;
推荐阅读
- html - Laravel,HTML:在 Main-Template 中插入单独的模板
- api - MS Graph SignInActivity 属性丢失?
- javascript - 如何使用递归更新局部范围的变量
- python - Python - 如何让 Selenium send_keys 在 IE11 中工作
- visual-studio-code - VSCode Snippets 自动将光标添加到语法末尾
- react-native - 如何在本机反应中映射对象数组
- html - tailwindcss flex 对齐项目和空间
- javascript - I'd like to keep unchanged value of a field but the datebase made it to ""
- javascript - 何时在 react.js 中使用构造函数
- javascript - 如何将一个.js文件中的类导入另一个