【发布时间】:2021-11-15 11:56:28
【问题描述】:
我是 React Native 的初学者。我试图在我的应用程序的两个组件之间传递数据。我有组件 - Home.js 和 MyModal.js。
在第一个组件 - Home.js - 我有一个包含一些数据和 FlatList 组件的数组。 Home.js 在我的应用程序中正确显示数据。 此外,在 home.js 中,当用户单击 TouchableOpacity 组件中的卡片时,我试图显示模态:
<TouchableOpacity onPress={() => <MyModal />}>
<Card></Card> </TouchableOpacity>
在第二个组件 - MyModal.js- 我试图显示来自 home.js 的数据 /item.title/ 和 /item.body/。
这里是所有代码:
home.js:
import React, { useState } from "react";
import {StyleSheet,View,Text,FlatList,TouchableOpacity} from "react-native";
import Card from "../components/card";
import MyModal from "../components/myModal"
function Home({ navigation }) {
const [reviews, setReviews] = useState([
{
body: "lorem ipsum",
key: " 1",
title: "Flower",
},
{
key: "2",
title: "Two flowers",
body: "lorem ipsum",
}
]);
return (
<View style={styles.container}>
<FlatList
data={reviews}
renderItem={({ item }) => (
<TouchableOpacity onPress={() => <MyModal />}>
<Card>
<Text>{item.title}</Text>
<Text>{item.body}</Text>
</Card>
</TouchableOpacity>
)}
/>
</View>
);
}
myModal.js
import React from "react";
import { View, Text, Button, StyleSheet } from "react-native";
import Card from "../components/card";
export default function MyModal({ route, navigation }) {
return (
<View>
<Card>
<Text>{data.title}</Text>
<Text>{data.body}</Text>
</Card>
</View>
);
}
这是我想要显示的示例:
点击后的屏幕(使用来自 home.js 的数据打开 MyModal.js):
这里是代码框: https://codesandbox.io/s/youthful-fermat-lui4g
如果有任何建议,我将不胜感激
【问题讨论】:
标签: javascript reactjs react-native parent-child react-native-flatlist