2017-04-13 41 views
1

我想要做的是重复一个行项目,用户将能够更改线上的每个项目的数量。例如显示值环内反应本机代码已更改与onPress

  • 苏打............ - 1个+
  • 面包.. - 0 +
  • 等... .......... ... - 3 +

到目前为止我已经能够更改值并记录发生变化,但显示的值不会改变。

下面

是我到目前为止

render() { 

    let pizzaSides = this.props.pizzaSidesArray.map((sidesObj) => { 

     sidesObj.count = 0; 

递减功能,减少项目的数量,但不低于0

 decrement =() =>{ 
      console.log('dec'); 
      console.log(sidesObj); 
      if (sidesObj.count > 0) { 
      sidesObj.count--; 
      } 
     } 

增量调用

 increment =() =>{ 
      console.log('inc'); 
      console.log(sidesObj); 
      sidesObj.count++; 
     } 

     return (
      <View 
      key={sidesObj.name} 
      style={{ 
        paddingTop: 10, 
        flex: 1, 
        flexDirection: 'row', 
        alignItems: 'center', 
        justifyContent: 'space-between'}}> 

      <View style={{flex:1.5,flexDirection: 'row'}}> 
       <TouchableHighlight 
       onPress={ decrement} 
       style={{flex:1}}> 
       <Text> - </Text> 
       </TouchableHighlight> 

时增加了虽然可触摸的精彩集锦记录下更改以下文字不会改变

   <Text style={{flex:1}}> 
       {sidesObj.count} 
       </Text> 

       <TouchableHighlight 
       onPress={ increment} 
       style={{flex:1}}> 
       <Text> + </Text> 
       </TouchableHighlight> 
      </View> 

      </View> 
     ); 
    }); 

    return (
     <View> 

      {pizzaSides} 
     </View> 

    ) 
} 

}

感谢您的帮助。 :D

回答

0

您需要将您的值存储在状态中。看看React documentation

+0

安东尼感谢您的提示。也许我仍然错过了一些东西。我更改了代码以更新存储在redux中的数组中的计数值,并更改了中的值以从存储中访问该值,但它仍不会更改从初始值显示的值。 – BJax

+0

有趣的是现在,当我的文档重新加载时,这些值将显示出来。所以也许我需要触发元素重新渲染。 – BJax

+0

您能发送您用于设置的代码和设置值的代码吗?在Redux中更改状态时,它应该自行重新渲染。 –