在React Native中,从一个屏幕到另一个屏幕检索数据通常涉及使用导航库(如React Navigation)来管理屏幕之间的跳转,并通过状态管理或参数传递来共享数据。
// 导航到另一个屏幕并传递参数
navigation.navigate('SecondScreen', { itemId: 86, otherParam: 'anything you want here' });
// 在目标屏幕中获取参数
const { itemId, otherParam } = route.params;
首先,安装Redux及相关库:
npm install redux react-redux @reduxjs/toolkit
创建一个简单的Redux store:
// store.js
import { configureStore } from '@reduxjs/toolkit';
import rootReducer from './rootReducer';
const store = configureStore({
reducer: rootReducer,
});
export default store;
定义一个reducer:
// dataSlice.js
import { createSlice } from '@reduxjs/toolkit';
export const dataSlice = createSlice({
name: 'data',
initialState: {
value: null,
},
reducers: {
setData: (state, action) => {
state.value = action.payload;
},
},
});
export const { setData } = dataSlice.actions;
export default dataSlice.reducer;
在组件中使用Redux:
// FirstScreen.js
import React from 'react';
import { useDispatch } from 'react-redux';
import { setData } from './dataSlice';
const FirstScreen = () => {
const dispatch = useDispatch();
const handlePress = () => {
dispatch(setData('Some data'));
};
return (
<Button title="Send Data" onPress={handlePress} />
);
};
export default FirstScreen;
在另一个屏幕中读取数据:
// SecondScreen.js
import React from 'react';
import { useSelector } from 'react-redux';
const SecondScreen = () => {
const data = useSelector(state => state.data.value);
return (
<Text>{data}</Text>
);
};
export default SecondScreen;
问题:数据没有正确传递或显示。
原因:
解决方法:
connect
函数或useSelector
钩子正确连接到store。通过以上方法,你应该能够在React Native中有效地从一个屏幕检索数据并在另一个屏幕中使用。
领取专属 10元无门槛券
手把手带您无忧上云