#reactjs #cookies #react-redux
#reactjs #файлы cookie #реагировать-redux
Вопрос:
Эй, итак, я хотел бы сохранить информацию о данных корзины пользователей в корзине, чтобы обеспечить перезагрузку страницы, чтобы в корзине все еще оставались данные корзины, выбранные пользователем в корзине, я попытался реализовать, но даже при обновлении информация о корзине обновляется и принимает первые введенные данные в корзину могу ли я, пожалуйста, получить помощь в решении этой проблемы
Приведенный ниже код выполнен cartAction.js
const addToCart = (productId, qty) => async (dispatch, getState) => {
try {
const femaleProduct_url = `http://127.0.0.1:5000/single-womens-clothes/${productId}`;
const maleProduct_url = `http://127.0.0.1:5000/single-mens-clothes/${productId}`;
const kidsProduct_url = `http://127.0.0.1:5000/single-kids-clothes/${productId}`;
const femaleProduct_request = await axios.get(femaleProduct_url);
const maleProudct_request = await axios.get(maleProduct_url);
const kidsProduct_request = await axios.get(kidsProduct_url);
let data = [];
axios
.all([femaleProduct_request, maleProudct_request, kidsProduct_request])
.then(
axios.spread((...responses) => {
const f_product = responses[0];
const m_product = responses[1];
const k_product = responses[2];
if (f_product.data.length > 0) {
data = f_product.data;
} else if (m_product.data.length > 0) {
data = m_product.data;
} else {
data = k_product.data;
}
})
)
.then((response) => {
console.log(data[0].productName);
dispatch({
type: ADD_TO_CART,
payload: {
productId: data[0]._id,
name: data[0].productName,
image: data[0].productImage,
price: data[0].productPrice,
Qty: qty,
},
});
//This is where I tried to set the cart data to the user's cookie
const {
cart: { cartItems },
} = getState();
Cookie.set("cartItems", JSON.stringify(cartItems));
Приведенный ниже код store.js где я установил инициализированное состояние, получив данные cookie, указанные в Actions.js
const cart = Cookie.getJSON("cartItems" || []);
const initialState = { cartItems: cart };
const reducer = combineReducers({
femaleClothesList: femaleProductListReducer,
maleClothesList: maleProductListReducer,
kidsClothesList: kidsProductListReducer,
cart: cartReducer,
});
Могу ли я, пожалуйста, получить помощь в решении этой проблемы
Комментарии:
1. Если вы
console.log(cartItems)
выше, где вы пытаетесь его установить, отображаются ли правильные данные?2. Я получаю это предупреждение с консоли..
Cookie “cartItems” will be soon rejected because it has the “SameSite” attribute set to “None” or an invalid value, without the “secure” attribute. To know more about the “SameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
3. Но я действительно сомневаюсь, что это предупреждение имеет какое-либо отношение к проблеме, с которой я сталкиваюсь