滑动另一个元素时第一个索引隐藏项目未隐藏 - 滑动器 FlatList React native

Posted

技术标签:

【中文标题】滑动另一个元素时第一个索引隐藏项目未隐藏 - 滑动器 FlatList React native【英文标题】:1st index hidden Item not hidding when swiping the another element - swiperFlatList React native 【发布时间】:2022-01-11 09:19:13 【问题描述】:

正如您在图片中看到的,我已经实现了通过按下按钮动态添加文本输入,一切正常,只有第一个文本输入隐藏项(删除按钮)在滑动其他文本输入时没有隐藏。

const initialState = 
  col1: '',
  key: 0,
;
const [inputField, setInputField] = useState<Values[]>([initialState]);

<SwipeListView
            data=inputField
            renderItem=data => renderItem(data)
            renderHiddenItem=data => renderHiddenItem(data)
            leftOpenValue=55
            rightOpenValue=-100
            disableRightSwipe=true
            ListHeaderComponent=
              <View style=[styles.headingContainer]>
                <Text style=[styles.headingText]>Props.inputHeading</Text>
              </View>
            
            ListFooterComponent=
              <View style=styles.buttonContainer>
                <TouchableOpacity
                  style=styles.addBtn
                  activeOpacity=0.7
                  onPress=onPressAddBtn>
                  <Text style=styles.BtnText>Add</Text>
                </TouchableOpacity>
                <TouchableOpacity style=styles.submitBtn activeOpacity=0.7>
                  <Text style=styles.BtnText>Submit</Text>
                </TouchableOpacity>
              </View>
            
            style=height: Dimensions.get('screen').height / 1.3
          />

const renderItem = (data: any) => 
    return (
      <TouchableHighlight key=data.item.key>
        <TextInput
          placeholder="Hello"
          onChangeText=e => handleChange(data.item.key, 'col1', e)
          value=data.item.col1
          style=[styles.textInput, Props.textInputStyle]
          // ...Props.textInputProps
        />
      </TouchableHighlight>
    );
  ;

  const renderHiddenItem = (rowData: any) => 
    return (
      <View
        style=
          justifyContent: 'flex-end',
          flexDirection: 'row',
          alignItems: 'center',
        >
        <TouchableOpacity
          activeOpacity=0.7
          style=
            backgroundColor: 'red',
            justifyContent: 'center',
            flexDirection: 'row',
            width: 90,
            height: 45,
            alignItems: 'center',
            borderRadius: 5,
          >
          <Text style=color: 'white'>Remove</Text>
        </TouchableOpacity>
      </View>
    );
  ;

但其他所有元素的滑动都按预期工作,只有第一个元素没有按预期工作

【问题讨论】:

【参考方案1】:

通过将 keyExtractor=item =&gt; item.key.toString() 添加到 swiper flatlist 找到解决方案。

【讨论】:

以上是关于滑动另一个元素时第一个索引隐藏项目未隐藏 - 滑动器 FlatList React native的主要内容,如果未能解决你的问题,请参考以下文章

jquery效果- 显示和隐藏 淡入淡出 滑动 隐藏

jQuery animate() 通过左右滑动来隐藏和显示元素

jQuery动画(显示隐藏,淡入淡出,滑动)

[ jquery 效果 slideToggle([speed,[easing],[fn]]) ] 此方法用于滑动显示隐藏的被选元素

[ jquery 效果 slideDown([speed,[easing],[fn]]) slideUp([speed,[easing],[fn]]) ] 此方法用于滑动显示隐藏的被选元素:动画效果只

使用删除与隐藏时未调用自定义动画