现在,我使用以下代码将参数传递到另一个屏幕:第一个月这将自动导航到另一个屏幕。我试图将参数传递到另一个屏幕,而不离开我所在的屏幕,但我很难弄清楚如何做到这一点。我一直试图使用setParams,但我一直没有成功。任何帮助或正确方向的点将不胜感激。
xytpbqjk1#
您可以考虑使用asyncStorage以便在屏幕之间共享数据。例如,
AsyncStorage.setItem('MyWatchList',JSON.stringify({watchLists: response}));
并通过使用检索
AsyncStorage.getItem('MyWatchList').then(item => { const list = JSON.parse(item); ... });
zxlwwiss2#
import { EventRegister } from "react-native-event-listeners";
<TouchableOpacity onPress={() => {this.setState({ visibleModal: false }); EventRegister.emit("changeModalEvent", this.state.visibleModal); }} > {this.state.theme == true ? ( <Icon3 name="cancel" color={Colors.night_color_text} size={30} /> ) : ( <Image source={require("../assets/images/Auto_Layout_Horizontal.png")} style={{ height: 24, width: 24 }} /> )} </TouchableOpacity>
useEffect(() => { let eventListner = EventRegister.addEventListener( "changeModalEvent", (data) => { // console.log({ data }); setVisibleModal(data); } ); return () => { EventRegister.removeEventListener(eventListner) }; });
au9on6nz3#
我认为你试图实现的是跨屏幕的持久状态,你可以通过多种方式做到这一点,你可以使用全局变量,你将能够从你所有的类/函数中读取和写入它们。How to use global variables in React Native?但最有效的方法是使用redux来管理状态Redux是一个开源JavaScript库,用于管理和集中应用程序状态。
pwuypxnk4#
您可以将数据存储在数组中,当您导航到下一个屏幕时,使用导航传递该数组
4条答案
按热度按时间xytpbqjk1#
您可以考虑使用asyncStorage以便在屏幕之间共享数据。
例如,
并通过使用检索
zxlwwiss2#
您还可以使用EventRegister
发送如下值:
读取任何屏幕中与键相关的值,如下所示:
au9on6nz3#
我认为你试图实现的是跨屏幕的持久状态,你可以通过多种方式做到这一点,你可以使用全局变量,你将能够从你所有的类/函数中读取和写入它们。
How to use global variables in React Native?
但最有效的方法是使用redux来管理状态
Redux是一个开源JavaScript库,用于管理和集中应用程序状态。
pwuypxnk4#
您可以将数据存储在数组中,当您导航到下一个屏幕时,使用导航传递该数组