onPress

时间:2017-10-26 10:05:22

标签: reactjs react-native

我花了几个小时考虑如何setStateonPress组件来改变我想要的道具。

在实际项目中,SpecialItemmap函数呈现,因此我无法为每个子项创建唯一的state并将其放在isfavourite道具上

例如,我希望第二个SpecialItem onPressisfavourite更改为true

render(
    return(
        <View>
            <SpecialItem ref={'sp_1'} isfavourite={false} onPress={()=> this.checkFav()}/>
            <SpecialItem ref={'sp_2'} isfavourite={false} onPress={()=> this.checkFav()}/>
            <SpecialItem ref={'sp_3'} isfavourite={false} onPress={()=> this.checkFav()}/>
        </View>
    );
); 

作为请求,这是map函数exmaple:

renderSpecialItem = () =>{
    return speciallist.map((item, i)=>{
        return(
          <SpecialItem key={i} isfavourite={item.isFav} onPress={()=> this.checkFav()}/>
        );
    });
}

2 个答案:

答案 0 :(得分:0)

您可以随时保存索引(来自地图循环),然后检查当前索引是否等于状态

isFavourite={this.state.selectedItemIndex === index}

onPress={()=> this.checkFav(index)}

答案 1 :(得分:0)

使用状态在修改内容时重新呈现列表。

baseList