J'utilise immutable.js function update() et updateIn(). Mais le résultat ne se passe pas comme prévu.La fonction de mise à jour non modifiable ne fonctionne pas
const initialState = Immutable.fromJS({cartList: [
{
id: 1,
name: "Product One",
quantity:1
},{
id: 2,
name: "Product Two",
quantity:2
}],
productList:[{
name: "Product One",
id: 1,
availability:2
},{
name: "Product Two",
id: 2,
availability:2
},{
name: "Product Three",
id: 3,
availability:4
}]});
var action = {
id: 2,
name: "Product Two",
quantity:2
};
initialState = initialState.updateIn(['cartList'], cartList => cartList.push(action)).toJS();
initialState = initialState.updateIn(['productList'], productList => {
productList.map(product => {
if(action.id == product.get("id")){
return product.update("availability", value => value-1);
} else
return product
});
}).toJS();
console.log(initialState.toJS());
Je l'ai essayé dans jsfiddle. Mais il n'y a pas de changement dans initialState.
Merci à l'avance.
Même si vous modifiez 'initialState' en var ou let, productList ne sera pas défini après la fonction map. Pouvez-vous m'aider?? –
@AmalaJames: Il serait utile que le code soit indenté/formaté d'une manière raisonnable et cohérente. Vous pouvez utiliser tout ce que vous voulez dans votre propre code, mais lorsque vous demandez de l'aide, il est utile de rendre le code lisible par les autres. –
@AmalaJames: J'ai mis à jour la réponse, cependant. Vous n'utilisez pas la valeur de retour de 'map'. –