如何在 React Native 中将项目数据传递到模态

How to pass item data into modal in react native

我有一个列表数据,我想要 select 项显示带有详细数据的模式

const [isModal, setModal] = useState(false)
const [idBasic, setIdBasic] = useState()

  const showModalBasic = (id) => {
    setModal(true), setIdBasic(id)
  }

  const [data, setData] = useState([
    {
      id: "BIKD31",
      name: "BI KD 3.1",
      desc:
        "Mencermati gagasan pokok dan gagasan pendukung yang diperoleh dari teks lisan, tulis, atau visual;",
    },
    {
      id: "BIKD41",
      name: "BI KD 4.1",
      desc:
        "Mencermati gagasan pokok dan gagasan pendukung yang diperoleh dari teks lisan, tulis, atau visual;",
    },
    {
      id: "BIKD32",
      name: "BI KD 3.2",
      desc:
        "Mencermati gagasan pokok dan gagasan pendukung yang diperoleh dari teks lisan, tulis, atau visual;",
    },
    {
      id: "BIKD42",
      name: "BI KD 4.2",
      desc:
        "Mencermati gagasan pokok dan gagasan pendukung yang diperoleh dari teks lisan, tulis, atau visual;",
    },
    {
      id: "BIKD33",
      name: "BI KD 3.3",
      desc:
        "Mencermati gagasan pokok dan gagasan pendukung yang diperoleh dari teks lisan, tulis, atau visual;",
    },
  ])

<FlatList
        data={data}
        renderItem={({ item }) => {
          if (!item) return null

          return (
            <TouchableOpacity
              style={{
                flexDirection: "row",
                justifyContent: "space-between",
                alignItems: "center",
                backgroundColor: theme.colors.surface,
                paddingHorizontal: 20,
                paddingVertical: 16,
                borderBottomWidth: 1,
                borderBottomColor: Colors.GREY_LIGHT,
              }}
              onPress={() => {
                showModalBasic(item.id)
              }}
              // onPress={handleChooseOrgTypePress(item.name)}
            >
              <View>
                <Text style={{ ...theme.fonts.bold }}>{item.name}</Text>
                <Text
                  style={{
                    ...theme.fonts.medium,
                    marginTop: 4,
                    fontSize: 12,
                    color: Colors.GRAY_DARK,
                  }}>
                  {`${item.desc.substr(0, 45)}...`}
                </Text>
              </View>
              <MaterialIcons
                name={item.id === isChoosen ? "check" : "chevron-right"}
                size={20}
                color={
                  item.id === isChoosen
                    ? theme.colors.primary
                    : Colors.GRAY_DARK
                }
                style={{ position: "absolute", right: 15, zIndex: 2 }}
              />
            </TouchableOpacity>
          )
        }}
        keyExtractor={(item) => item.id}
        showsVerticalScrollIndicator={false}
      />
      <ModalBasic visible={isModal} id={setIdBasic} />

这是一个用于呈现项目和功能的文件,用于显示模态,我混淆了如何将数据传递给组件“ModalBasic”,因为我不使用导航,如果我使用导航进行模态显示也许我可以,但是可以我用导航显示模态还是我必须用 useState 将数据传递给模态?

您传递的是 id state updater 函数而不是 id state。

您可以查看工作示例here

 <ModalBasic visible={isModal} id={idBasic} />