0

我有一个水平平面列表,当按下列表中的任何元素时,我想在其中执行一个函数。但是,OnPress 没有执行,涟漪效应确实显示出来。

我目前正在通过 OnPress 属性中的控制台输出进行故障排除。

我已尝试按照某些人的建议用 a 包装组件,但它仍然无法正常工作。

这是我的代码

//...IMPORTS



export default class DatePicker extends Component {
    //...
    render() {
        return (
              <FlatList
                  initialScrollIndex={8}
                  showsHorizontalScrollIndicator={false}
                  showsVerticalScrollIndicator={false}
                  style={styles.datepickerContainer}
                  horizontal= {true}
                  contentContainerStyle={{justifyContent: 'center'}}
                  horizontal={true}
                  data={this.state.datesArray}
                  keyExtractor={item => item.id.toString()}
                  renderItem={({ item }) => (
                           <TouchableNativeFeedback style={styles.view} onPress={() => console.log("Test")}>
                             <View>
                              <NonSelectedDate currentTime={item.currentTime} dateOffset={item.offset}/>
                            </View>
                          </TouchableNativeFeedback>
                  )}
              />
      
        );
    }
  };
  const styles = StyleSheet.create( {
    datepickerContainer: {
        marginTop: 5,
        flexDirection: 'row',
        flex: 1,
        maxHeight: '7.5%',
    },
    view: {
      flex: 1,
        width: width*0.1428,
      },
  })

4

1 回答 1

0

问题可能是它可能没有进入 flatlist 渲染项方法中。通过在 flatlist 渲染项方法中添加警报来调试它。

另请参阅是否适用于 TouchableOpacity。尝试赋予内部视图样式并查看它们是否呈现。如果使用 android 也尝试使用 zIndex

于 2019-08-09T09:10:13.897 回答