0

我试图用一些复选框创建一个 DraggableList,问题是我的组件没有触发“onPress”,而“onLongPress”方法工作正常......

我试图删除“onLongPress”方法,但还是一样。

这是我的整个组件:

class Menus extends React.Component {

  state = {
    menusItems: global.conf.Menus.map((d, index) => ({
      id: d.id,
      key: `item-${d.id}`,
      label: d.label,
      path: d.path,
      value: d.value,
      backgroundColor: `rgb(${Math.floor(Math.random() * 255)}, ${index *
        5}, ${132})`,
    })),
  };

  renderItem = ({item, index, drag, isActive}) => {
    return (
      <TouchableOpacity
        style={{
          backgroundColor: isActive ? 'blue' : item.backgroundColor,
          alignItems: 'center',
          justifyContent: 'center',
        }}
        onLongPress={drag}
        onPress={() => console.log('puff')}>
        <Checkbox
          status={item.value ? 'checked' : 'unchecked'}
          key={item.id}
          title={item.label}
        />
      </TouchableOpacity>
    );
  };

  return (
      <View style={{flex: 1}}>
        <DraggableFlatList
          data={this.state.menusItems}
          renderItem={this.renderItem}
          keyExtractor={(item, index) => `draggable-item-${item.key}`}
          onDragEnd={({data}) => this.setMenus(data)}
        />
      </View>
    );
  }
}

export default Menus;

我不知道出了什么问题......

4

0 回答 0