React native 如何从另一个独立屏幕更新不同屏幕?
我有一个带有导航栏的应用程序,有两个屏幕。 当我在屏幕/组件1上应用函数时,我希望在第二个屏幕中渲染或触发更改 有没有办法在回车时重新渲染屏幕或更新另一个屏幕的状态 第一部分: 导出默认类主屏幕扩展React.Component{ 建造师{ 超级的 } _onPress{ 试一试{ 等待AsyncStorage.setItem'value','changed value'; }捕捉错误{ console.logerror.message; } console.logsaved:+this.state.userName } 渲染{ 回来 这个。_onPress}> } 构成部分2: 导出默认类SecondScreen扩展React.Component{ 建造师{ 超级的 this.state={some:} } 异步getValue{ 让receivedvalue=; 试一试{ let promise=Wait AsyncStorage.getItem'value'| | |'cheeseCake'; promise.thenvalue=>ReceivedValue=value }捕捉错误{ //检索数据时出错 console.logerror.message; } 返回接收值 } 渲染{ var value=this.getValue; 回来 此处更改的值:{VALUE} this.setStateprev=>{some:'Thing'}}> } 当我按下屏幕1主屏幕上的按钮时,值被保存。 但只有当我通过按键触发状态改变时,它才会显示在secont屏幕上 当我通过导航栏访问屏幕时,如何渲染屏幕? 您尝试过EventEmitter吗 使用此自定义事件侦听器: 例如:React native 如何从另一个独立屏幕更新不同屏幕?,react-native,React Native,我有一个带有导航栏的应用程序,有两个屏幕。 当我在屏幕/组件1上应用函数时,我希望在第二个屏幕中渲染或触发更改 有没有办法在回车时重新渲染屏幕或更新另一个屏幕的状态 第一部分: 导出默认类主屏幕扩展React.Component{ 建造师{ 超级的 } _onPress{ 试一试{ 等待AsyncStorage.setItem'value','changed value'; }捕捉错误{ console.logerror.message; } console.logsaved:+this.st
你能提供一个gif的例子让我很容易理解吗…@Tanveerbyn我有一个gif。按下按钮后你如何进入屏幕2?理想情况下,你应该将该值作为道具传递给家长,这样它可以更新孩子。您是否尝试过使用React的任何生命周期组件?您可以尝试使用componentDidUpdate和更新某些状态来触发重新渲染这里有导航栏@UmairAhmed第一项是屏幕1第二项是屏幕2。更新时也不会发生任何事情。我什么都试过了。一旦导航栏获得屏幕,它将呈现它们。然后他们一直呆着直到状态改变。
import { EventRegister } from 'react-native-event-listeners'
/*
* RECEIVER COMPONENT
*/
class Receiver extends PureComponent {
constructor(props) {
super(props)
this.state = {
data: 'no data',
}
}
componentWillMount() {
this.listener = EventRegister.addEventListener('myCustomEvent', (data) => {
this.setState({
data,
})
})
}
componentWillUnmount() {
EventRegister.removeEventListener(this.listener)
}
render() {
return <Text>{this.state.data}</Text>
}
}
/*
* SENDER COMPONENT
*/
const Sender = (props) => (
<TouchableHighlight
onPress={() => {
EventRegister.emit('myCustomEvent', 'it works!!!')
})
><Text>Send Event</Text></TouchableHighlight>
)