Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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_React Native_React Native Router Flux - Fatal编程技术网

Javascript 重新加载当前场景

Javascript 重新加载当前场景,javascript,react-native,react-native-router-flux,Javascript,React Native,React Native Router Flux,我使用react本机路由器流量进行导航。我在一个场景中获得一个数据数组,并在一个带有组件的滚动视图中渲染它们。在该组件中,有一个用于该数据的删除方法。当用户删除数据时,我需要重新加载场景以获取新数据,并渲染它们。如何重新加载当前场景 这是渲染的代码 <ScrollView style={styles.topContainer}> <Header headerText={'Tasks'} /> {this.renderTasksDetails()}

我使用react本机路由器流量进行导航。我在一个场景中获得一个数据数组,并在一个带有组件的滚动视图中渲染它们。在该组件中,有一个用于该数据的删除方法。当用户删除数据时,我需要重新加载场景以获取新数据,并渲染它们。如何重新加载当前场景

这是渲染的代码

<ScrollView style={styles.topContainer}>
    <Header headerText={'Tasks'} />
      {this.renderTasksDetails()}
    <View style={styles.container}>
      <AddButton onPress={() => Actions.addTasks({ text: this.props.text })}> + </AddButton>
    </View>
</ScrollView>
如何刷新当前场景。我试着去同一个场景,但没有效果,因为我已经在那个场景了

编辑:router.js

<Scene key="main">
    <Scene key="tasks" hideNavBar={true} component={Tasks} initial />
    <Scene key="addTasks" component={AddTask} title='Task Create' />
</Scene>

您需要添加当前场景关键点,如

Actions.refresh({ key: 'tasks', text: text2 });
或使用通用密钥:

Actions.refresh({ key: this.props.navigationState.sceneKey, text: text2 });
你可以尝试使用

Actions.refresh({ whatever_props_you_need: whatever_props_value, key: moment() });
这里的要点是键:moment()。因为我总是设置为当前时间,所以每次刷新时,它都会将密钥检测为新值,因此页面将刷新。或者,您可以使用任何唯一的字符串作为键道具替换矩()

希望有帮助:)

只需使用以下内容:

Actions.refresh({key: Math.random()});

谢谢你的快速回复。它只重新加载了一次场景。在我连续按2次删除后。第一次按会导致场景重新加载,但第二次按不会。@K.Smith您在对象中放置了什么键?我编辑了问题,您可以在问题中看到router.js,因此您需要编写
操作。刷新({key:'tasks',text:text2})Actions.refresh({ whatever_props_you_need: whatever_props_value, key: moment() });
Actions.refresh({key: Math.random()});