【发布时间】:2018-01-18 03:04:51
【问题描述】:
我正在通过构建一个简单的聊天应用来学习 React Native。我有两个屏幕包裹在 TabNavigator 中,其中第一个屏幕(屏幕 A)是聊天框,另一个屏幕(屏幕 B)显示在线用户列表。我正在使用 SocketIO 来获取这些用户。
问题是,如何访问从 ScreenA 到 ScreenB 的“onlineUsers”状态,以便在收到“用户加入”事件时看到更新的在线用户列表?
屏幕 A:
export default class ScreenA extends Component {
constructor(props) {
super(props);
this.state = {
onlineUsers = [];
}
}
componentDidMount() {
// Update list of online users when new user joins chat
this.socket.on('user joins', (payload) => {
this.setState({
onlineUsers: payload.users
})
})
}
}
屏幕 B:
export default class ScreenB extends Component {
constructor(props) {
super(props);
// I want to get the onlineUsers from ScreenA
this.state = {
onlineUsers = [];
}
}
}
路由器:
export const Chat = TabNavigator({
ChatBox: {
screen: ScreenA
},
OnlineUsers: {
screen: ScreenB
},
})
PS:我正在使用 react-navigation 来处理导航
【问题讨论】:
标签: react-native socket.io react-navigation