今、私はステートのオブジェクト配列のプロパティ値を増減する必要があります。私はsetStateに私の心に来たすべてを投げてみました。時には、それはすべてのエラーを投げるいませんでしたが、どちらかの値を更新していなかった今、私はエラーメッセージを取得:React.js配列のオブジェクトプロパティのsetState
this.state.productsを[キー]は未定義です
constructor(props) {
super(props)
var products = [
{ name: "Motorhead glasses", price: 300, amount: 1 },
{ name: "Judaspriest glasses", price: 499, amount: 1 }
]
this.state = { products: products }
this.handleMinus = this.handleMinus.bind(this)
}
handleMinus(key) {
var stateCopy = Object.assign({}, this.state);
stateCopy.products = stateCopy.products.slice();
stateCopy.products[key] = Object.assign({}, stateCopy.products[key]);
stateCopy.products[key].amount += 1;
this.setState({ [this.state.products[key].amount]: stateCopy });
console.log(this)
}
あなたのコードに 'handleMinus'をどのように実装しましたか?そのコードも提供する必要があります。 –
あなたのキーは0か1です、この例では、右ですか? –
@RuhulAmin実装されていますが、マークアップ全体を貼り付けることはありません。これはクリックで動作し、固定コンテキストとconsole.logが正常に動作します – EDGECRUSHER