React Native 如何将参数传递到另一个屏幕而不导航到它

n1bvdmb6  于 2022-12-24  发布在  React
关注(0)|答案(4)|浏览(147)

现在,我使用以下代码将参数传递到另一个屏幕:
第一个月
这将自动导航到另一个屏幕。我试图将参数传递到另一个屏幕,而不离开我所在的屏幕,但我很难弄清楚如何做到这一点。我一直试图使用setParams,但我一直没有成功。任何帮助或正确方向的点将不胜感激。

xytpbqjk

xytpbqjk1#

您可以考虑使用asyncStorage以便在屏幕之间共享数据。
例如,

AsyncStorage.setItem('MyWatchList',JSON.stringify({watchLists: response}));

并通过使用检索

AsyncStorage.getItem('MyWatchList').then(item => {
      const list = JSON.parse(item);
      ...
});
zxlwwiss

zxlwwiss2#

您还可以使用EventRegister

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)
    };
  });
au9on6nz

au9on6nz3#

我认为你试图实现的是跨屏幕的持久状态,你可以通过多种方式做到这一点,你可以使用全局变量,你将能够从你所有的类/函数中读取和写入它们。
How to use global variables in React Native?
但最有效的方法是使用redux来管理状态
Redux是一个开源JavaScript库,用于管理和集中应用程序状态。

pwuypxnk

pwuypxnk4#

您可以将数据存储在数组中,当您导航到下一个屏幕时,使用导航传递该数组

相关问题