我已经通过了两个参数,但是不确定在以下示例中如何使用它。如果可以的话请帮忙。

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/

10-11 14:05