我有一个 ReactVr 对象,我用下面的代码渲染它。 React 初始化后,我会定期接收服务器更新,我想将其作为 props 传递到 React 中,我该怎么做? React 对象中的 props 可以从我的“普通”JS 设置吗?
ReactVR.init(
'./build/index.bundle.js',
document.body,
// third argument is a map of initialization options
{
initialProps: {
source: 'world.json',
userType: "typ1"
},
cursorVisibility: 'visible'
}
);
编辑:服务器更新是通过 Websockets 连接进行的,但从 React 内部不会接收到消息,仅在“正常”JS 中接收。
在“普通”JS 中,这会从服务器返回数据,如果我在 React 中使用相同的数据,连接会打开,但永远不会收到消息。然而,消息可以从 React 内部发送。
socket.addEventListener('message', function (event) {
console.log('Message from server ', event.data);
});
您应该能够创建一个本机模块来促进此功能。
在这里查看相关文档:https://facebook.github.io/react-vr/docs/native-modules.html https://facebook.github.io/react-vr/docs/native-modules.html
创建模块并将其链接到 client.js 后,您可以将其导入组件中,并将其用作 React VR 和套接字实现之间的通信层。
为此,请在您的init
函数于client.js
add
const socketsModule = new SocketsModule();
然后在新的导入或该文件本身中您可以添加:
export class SocketsModule extends Module {
constructor() {
super('SocketsModule');
}
init() {
}
customMethod() {
// Do fun stuff here
}
}
然后在你的 React VR 组件中你想要调用这些方法,你首先要包含这个新模块:
const SocketsModule= NativeModules.SocketsModule;
然后您可以从该组件内访问其方法:
SocketsModule.customMethod();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)