0
私が渡した2つのパラメータがありますが、次の例で使用する方法がわかりません。可能であればお手伝いください。だからここMeteor渡されたパラメータで使用する方法に反応しますか?
updater(layer, item){
this.setState({layer5: <img id="layer5" className="on-top img-responsive center-block" name="layer5" src="images\5.png" />});
}
は、現時点では私のコードで、私がやりたいことは、次のようなものです:
updater(layer, item){
this.setState({{layer}: <img id={layer} className="on-top img-responsive center-block" name={layer} src={item.src} />});
}
しかし、これは私に、構文エラーになります。
UPDATE: は変更後、私は渡された正しい値を取得していますが、状態は、何らかの理由で更新されていません:あなたはあなたの状態でコンポーネントに反応保管してはならない
constructor(){
super();
this.renderView = this.updater.bind(this);
this.state = {
layer1: "1.png",
layer2: "",
layer3: ""
};
}
updater(layer, item){
console.log(layer); //shows as "layer1"
console.log(item); // shows as "3.png"
this.setState({layer: item});
}
おかげでアップデートを参照してください。まだしかし、問題を持っているので、画像のみが使用され、残りはレンダリングでレンダリングされ、それを変更しました – sophia
@sophia '{layer:item}'はあなたが思っていることをしないと思います。あなたの例では、 '{layer1: '3.png'}'ではなく、 '{layer: '3.png'}'というオブジェクトになります。代わりに、次のようなものを試してください: 'var newState = {}; newState [layer] = item; this.setState(newState); ' – Timo
完璧な作品、説明してくれてありがとう! – sophia