【发布时间】:2022-01-15 18:09:39
【问题描述】:
我将实现一个产品页面,当我点击相似的产品组件时,它会在其中包含相似的产品,它应该打开相同的屏幕组件并将之前的产品屏幕保留在导航历史记录中。
有人可以帮帮我吗?
productSlice.js
const productSlice = createSlice({
name: "product",
initialState: {
product: null,
loading: false,
},
reducers: {
getProductStart: (state) => {
state.loading = true;
},
getProductSuccess: (state, { payload }) => {
state.product = payload;
state.loading = false;
},
getProductFailure: (state, { payload }) => {
state.loading = false;
},
},
});
const { actions, reducer } = productSlice;
export const productSelector = (state) => state.product;
export default reducer;
export function fetchProduct(id){
return dispatch => {
...
}
}
store.js
const reducers = combineReducers({
product: productReducer,
});
const store = configureStore({
reducer: reducers,
});
export default store;
ProductScreen.js
function ProductScreen({ navigation, route }) {
const dispatch = useDispatch();
const { product, loading } = useSelector(productSelector);
useEffect(() => {
dispatch(fetchProduct(route.params.id));
});
const openSimilarProduct = (id) => {
navigation.push("ProductScreen", { id });
}
return (
<View>
<Text>{product.name}</Text>
<Text>{product.description}</Text>
<View>
<Pressable onPress={() => openSimilarProduct(1)} >
<Text>Product #1</Text>
</Pressable>
</View>
</View>
);
}
export default ProductScreen;
【问题讨论】:
标签: javascript react-native redux react-redux redux-toolkit