亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React Native,所有項目的狀態都在變化,而不是被點擊的項目

React Native,所有項目的狀態都在變化,而不是被點擊的項目

胡子哥哥 2023-05-19 15:01:26
我在平面列表中創建了一個按鈕,當用戶單擊一個特定項目時,它的按鈕應該改變狀態并且應該出現遞增按鈕,但是按鈕會改變所有項目的狀態。我也通過了 id 但它不起作用,有人可以幫助我......下面是我的代碼項目.js<FlatList              data={this.props.items}              extraData={this.props}              keyExtractor={(items) => items.id.toString()}              numColumns={2}              renderItem={({ item }) => (                <CardBuyItem>                  <Image style={styles.image} source={item.image} />                  <View style={styles.detailContainer}>                    <Text style={styles.title}>{item.title}</Text>                    <Text style={styles.subTitle} numberOfLines={1}>                      {item.subTitle}                    </Text>                    <Text style={styles.price}>Rs {item.price}</Text>                  </View>                  {this.props.button && this.props.added.length > 0 ? (                    <View style={styles.add}>                      <Text style={styles.quantity}>{item.quantity}</Text>                      <MaterialCommunityIcons                        style={styles.iconUp}                        size={20}                        name="plus-circle-outline"                        onPress={() => this.props.addQuantity(item.id)}                      />                      <MaterialCommunityIcons                        style={styles.iconDown}                        size={20}                        name="minus-circle-outline"                        onPress={() => this.props.subtractQuantity(item.id)}                      />                    </View>                  ) : (                    <View style={styles.buy}>                      <Text                        style={styles.buyonce}                        onPress={() => {                          this.props.addToCart(item.id);                          this.props.showCart();                          this.props.showButton(item.id);                        }}
查看完整描述

1 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

您有一個通用的狀態變量,這會導致它顯示所有按鈕。

你可以像這樣做一個簡單的解決方案。在您的平面列表中,您可以有一個邏輯來顯示按鈕

{this.props.added.find(x=>x.id==item.id) !=null ? (

或者,如果您必須使用 reducer,則必須在數組中擁有一個屬性并更新它,這將是維護起來很復雜的。


查看完整回答
反對 回復 2023-05-19
  • 1 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號