Javascript 重新加载当前场景
我使用react本机路由器流量进行导航。我在一个场景中获得一个数据数组,并在一个带有组件的滚动视图中渲染它们。在该组件中,有一个用于该数据的删除方法。当用户删除数据时,我需要重新加载场景以获取新数据,并渲染它们。如何重新加载当前场景 这是渲染的代码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()}
<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()});