我被这个问题困住了。任何帮助,将不胜感激。
我在我的反应原生应用程序中使用 Redux Persist,我想从 App.js 中的 store.js 访问存储在状态“数字”中的数据。
我在下面粘贴了我的代码。
这是我的actions.js
export const setNumber = number => dispatch => {
dispatch({
type: SET_NUMBER,
payload: number,
});
};
减速器.js
import {SET_NUMBER} from './actions';
const initialState = {
number: [],
};
function numberReducer(state = initialState, action) {
switch (action.type) {
case SET_NUMBER:
return {...state, number: action.payload};
default:
return state;
}
}
export default numberReducer;
store.js
import {createStore, combineReducers, applyMiddleware} from 'redux';
import thunk from 'redux-thunk';
import AsyncStorage from '@react-native-async-storage/async-storage';
import {persistStore, persistReducer} from 'redux-persist';
import numberReducer from './reducers';
const persistConfig = {
key: 'root',
storage: AsyncStorage,
whitelist: ['number'],
};
const rootReducer = combineReducers({
numberReducer: persistReducer(persistConfig, numberReducer),
});
const store = createStore(rootReducer, applyMiddleware(thunk));
const persistor = persistStore(store);
export {store, persistor};
应用程序.js
import React, {Component} from 'react';
import {View, Text, SafeAreaView, Button} from 'react-native';
import {NavigationContainer} from '@react-navigation/native';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import {Provider} from 'react-redux';
import {store, persistor} from './redux/store';
import {PersistGate} from 'redux-persist/integration/react';
import {connect} from 'react-redux';
import Login from './screens/Login';
import Home from './screens/Home';
import Details from './screens/Details';
const Stack = createNativeStackNavigator();
function App() {
if (number == null) {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Home"
component={Home}
options={{
headerStyle: {
backgroundColor: 'lightblue',
},
}}
/>
</Stack.Navigator>
</NavigationContainer>
);
} else {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Login"
component={Login}
options={{
headerStyle: {
backgroundColor: 'lightblue',
},
}}
/>
<Stack.Screen
name="Home"
component={Home}
options={{
headerStyle: {
backgroundColor: 'lightblue',
},
}}
/>
<Stack.Screen
name="Details"
component={Details}
options={{
headerStyle: {
backgroundColor: 'lightblue',
},
}}
/>
</Stack.Navigator>
</NavigationContainer>
</PersistGate>
</Provider>
);
}
}
export default App;
我想访问“数字”中的数据,以便我的“如果条件”可以在 App.js 中工作现在它说找不到变量“数字”,这是可以理解的。有什么方法可以访问“数字”中的数据以使条件正常工作。提前致谢。