我是React Native的新手,到目前为止,我的大部分进步都归功于我疯狂的复制粘贴技能。
目标:我希望它仅针对单个订单项切换删除线onPress。
据我所知,当用户按下lasso_model <- glmnet(x = as.matrix(lasso),
y = as.matrix(lasso_target),
standardize=TRUE,
alpha=1)
时:
TouchableOpacity > ListItem
,strikeStatus
styles.strike
中的this.state.strikeStatus ? styles.strike : false
测试。(有人说它在TouchableOpacity和ListItem中都放置了titleStyle
,但这对我来说没有意义。如果可行,请提供更详细的说明。)
Expo Snack是here。
onPress
答案 0 :(得分:1)
首先,您要对所有项目应用相同的样式,因为状态变量hitStatus是在您按的任何项目上设置的,然后将其用于所有项目。
要实现所需的功能,可以向在selected
上初始化的名为false
的项目对象添加属性。
titleStyle
将是:
titleStyle={[
styles.item,
item.selected && styles.strike
]}
然后您像这样呼叫onPress
:
onPress={() => this.toggleStrike(index)}
要使用index
参数,您需要将其添加到renderItem
函数中
在toggleStrike
内,将传递的索引处的selected
值更改为项目的true
。
toggleStrike(index) {
this.setState((prevState) => {
prevState.items[index].selected = !prevState.items[index].selected;
return { ...prevState }
});
}