我已经通过了两个参数,但是不确定在以下示例中如何使用它。如果可以的话请帮忙。
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} />});
}
但这给了我一个语法错误。
更新:
更改后,我获得了正确的值,但是由于某种原因,状态没有更新:
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});
}
最佳答案
您不应该在您的状态下存储React组件。而是在render()
函数中存储进行渲染并实际渲染组件所需的信息:
updater(layer, item){
this.setState({
layer5: {
layer: layer,
item: item
}
});
}
render() {
var layer5 = (
<img
id={this.state.layer5.layer}
className="on-top img-responsive center-block"
name={this.state.layer5.layer}
src={this.state.layer5.item}
/>
)
...
}
关于javascript - meteor React如何使用传入的参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38109786/