如何传递useState状态值给useReducer initialstate



我想从useState状态值传递一个值给useReducer initialstate

const [item, setItem] = useState([]);
const initialState = {
menuOpen: true,
promoOpen: false,
couponOpen: false,
cartOpen: false,
orderOpen: false,
orderAmount: 1,
filteredItem: item,
};
const [state, dispatch] = useReducer(reducer, initialState);
const fetchUrl = async () => {
const resp = await fetch(url);
const respData = await resp.json();
const item = respData.item;
const category = respData.category;
const promo = respData.promo;
setItem(item);
setCategory(category);
setPromo(promo);
setFilterItem(item);
};

但是当我做console.log(state.filteredItem)时,我得到一个空数组,所以我假设它没有将值传递给initialState。是否有一种方法让我传递一个useState状态值useReducer initialState值?由于之前

你在这里想做的是行不通的。减速机的初始状态就是——initial状态。它将使用initialState的值从第一次渲染,之前你的items已更新与获取结果。对变量initialState的更改将不会影响已经创建的减速器。你必须dispatch一个动作来存储items在你的减速器。

const[项,setItem] = useState ([]);

你用一个空数组声明了你的状态,因此这就是filteredItem所显示的。如果你后来设置了你的状态,为了在reducer中改变它,我认为你需要使用分派函数。

最新更新