使用if时的错误,更新反应中的状态时

时间:2017-03-24 19:44:38

标签: javascript arrays reactjs variables if-statement

我想在条件为真时更新此变量,但它不会让我,谢谢

Subject Student Grade
Math      James   A
Math      John    B
Math      Eric    B
Physics   Crystal A  
Chemistry  James  C
Biology    John   A
Biology    Eric   B

2 个答案:

答案 0 :(得分:1)

原因是,您忘记使用{},如果您正在使用任何条件或想要进行某些计算,请使用{}并将所有语句放入其中。还有一件事,因为你只想迭代array意味着不返回任何东西,所以我的情况使用forEach而不是map,使用此:

this.props.items.forEach(item => { //here
    if(item.name == this.props.product.name) {
          isActive = true;
    }
});

检查此代码会产生相同的错误:

[1,2,3,4].forEach(el=>(
     if(el % 2 == 0)
         console.log(el);
))

检查工作示例:

[1,2,3,4].forEach(el=>{
         if(el % 2 == 0)
             console.log(el);
})

答案 1 :(得分:0)

你真的没有通过一个活跃的'财产和国家。您正在尝试设置计算属性,就像Ember一样(请参阅How to setup Ember like computed properties in Immutablejs and Redux and Flux and React)。这被认为是React并被驳回。

您应该创建一个函数isActive()并在需要时调用它。我希望你在渲染一组isActive属性的单个项目组件时只需要它。

也就是说,有一些方法可以将其填入React代码库,但是您的代码将无法维护。