Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改选项卡时是否重新加载屏幕?_Javascript_Reactjs_React Native_React Navigation_React Native Maps - Fatal编程技术网

Javascript 更改选项卡时是否重新加载屏幕?

Javascript 更改选项卡时是否重新加载屏幕?,javascript,reactjs,react-native,react-navigation,react-native-maps,Javascript,Reactjs,React Native,React Navigation,React Native Maps,我的项目中有两个选项卡-外部选项卡和内部选项卡。在我的内部选项卡中,我有显示标记和详细信息的地图和列表 现在,我想在将选项卡从“映射”更改为“列表”或从“映射”更改为“列表”时重新加载获取数据。我只能在ie首次访问时调用它们一次,因为我一直在调用组件将挂载的API。 如何识别标签移动和重新加载地图 非常感谢您提供的任何线索我想您正在使用。他们最近在API willBlur、willFocus、didBlur和didFocus事件中引入了导航侦听器 然后,一个想法是使用屏幕中的侦听器刷新所需的数据

我的项目中有两个选项卡-外部选项卡和内部选项卡。在我的内部选项卡中,我有显示标记和详细信息的地图和列表

现在,我想在将选项卡从“映射”更改为“列表”或从“映射”更改为“列表”时重新加载获取数据。我只能在ie首次访问时调用它们一次,因为我一直在调用组件将挂载的API。 如何识别标签移动和重新加载地图

非常感谢您提供的任何线索

我想您正在使用。他们最近在API willBlur、willFocus、didBlur和didFocus事件中引入了导航侦听器

然后,一个想法是使用屏幕中的侦听器刷新所需的数据

例如:

class YourComponent extends Component {
  componentDidMount() {
    this.didFocusListener = this.props.navigation.addListener(
      'didFocus',
      () => { console.log('did focus') },
    );
  }

  componentWillUnmount() {
    this.didFocusListener.remove();
  }

  render() {
    return ( /* your render */ );
  }
}
文档:

我想您正在使用。他们最近在API willBlur、willFocus、didBlur和didFocus事件中引入了导航侦听器

然后,一个想法是使用屏幕中的侦听器刷新所需的数据

例如:

class YourComponent extends Component {
  componentDidMount() {
    this.didFocusListener = this.props.navigation.addListener(
      'didFocus',
      () => { console.log('did focus') },
    );
  }

  componentWillUnmount() {
    this.didFocusListener.remove();
  }

  render() {
    return ( /* your render */ );
  }
}

文档:

尝试使用useEffect挂钩处理组件渲染更改

useEffect(() => {
//core logic for component rerender
}, [dataChangelistener]);

尝试使用useEffect挂钩处理组件渲染更改

useEffect(() => {
//core logic for component rerender
}, [dataChangelistener]);

我应该在哪里添加此侦听器?作为组件,willmount只调用一次。在componentWillReceiveProps中添加此侦听器是否有效?将其添加到您感兴趣的选项卡的componentDidMount中,不要忘记在componentWillUnmount中删除它。我更新了我的帖子。我应该在哪里添加此侦听器?作为组件,willmount只调用一次。在componentWillReceiveProps中添加此侦听器是否有效?将其添加到您感兴趣的选项卡的componentDidMount中,不要忘记在componentWillUnmount中删除它。我更新了我的帖子。