【发布时间】:2021-07-14 03:50:42
【问题描述】:
我正在构建一个应用程序,它在应用程序的开头有一个 API 调用,其中包含应用程序的所有数据。然后我使用 React Navigation 路由到主屏幕(以及其他屏幕)。我正在尝试将 API 调用中的数据传递到主屏幕,但我没有在我的 Home 元素中收到它。
代码是这样的:
App.js
export default function App() {
const [responseJson, setResponseJson] = useState([])
async function fetchData() {
await fetch('http://api.xxx.com/')
.then(response => response.json())
.then(responseJson => {
setResponseJson(responseJson);
})
}
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Home" response={responseJson} component={Home} options={{headerShown:false}}/>
</Stack.Navigator>
</NavigationContainer>
);
Home.js
export const Home = (props) => {
return(
<View style={styles.container}>
{console.log(props)}
</View>
)
}
console.log 为我提供了带有 navigation 和 route 密钥的 Object,但没有 response 密钥。我将如何将数据传递到主屏幕?
【问题讨论】:
-
这不是它的工作方式。道具没有钻到屏幕上。你最好在屏幕本身中获取数据
-
我正在尝试只进行一次 API 调用(而不是在每个屏幕上调用一次)并将该信息传递到相关屏幕
-
你可以使用 react context 来做
标签: reactjs react-native react-navigation