2017-04-13 60 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中更改狀態時,它應該自行重新渲染。 –