【问题标题】:Using Async Storage with React Navigation (React Native)将异步存储与 React Navigation 结合使用(React Native)
【发布时间】:2021-06-13 17:32:28
【问题描述】:

希望在移动应用程序中使用异步存储,但在将其提升到“根”文件后,很难弄清楚如何通过 Navigation 将状态作为道具传递。

这是我发现的一个独立于导航的示例:

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>

如果需要提供更多上下文信息,可以 - 请告诉我。提前致谢

【问题讨论】:

    标签: react-native state react-navigation react-props asyncstorage


    【解决方案1】:

    您可以在这里尝试的工作示例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;
    

    【讨论】:

    • 谢谢 Vasyl,我相信这会引导我走向正确的方向!
    猜你喜欢
    • 2022-01-17
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多