gpt4 book ai didi

javascript - 如何传递react.js数据来创建类似meteor.js或relay.js的容器

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:25 25 4
gpt4 key购买 nike

我喜欢在 react.js 中从 Meteor 和 relay.js 接收数据的概念。例如meteor.js,在createContainer中我从本地存储获取数据:

class App extends Component {
render(){
return (<div>{this.props.doc}</div>);
}
}
export default createContainer( () => {
subscribe('doc');
return { doc:Docs.find() };
}, App);

或者示例表单relay.js,其中在createContainer数据中从graphQL获取分配的props数据:

class App extends React.Component {
render() {
var name = this.props.tea;
return (<li key={name}>{name}</li>);
}
}
App = Relay.createContainer(App, {
fragments: {
tea:() => Relay.QL`fragment on Tea {name}`,
},
});

如何制作这样一个从websocket接收数据的函数?我可以想象这样的代码:

class App extends Component {
render(){
return (<div>{this.props.doc}</div>);
}
}
export default createContainer( () => {
return { doc:Docs.find() };
}, App);

ReactDOM.render(<App>, document.getElementById('root'));


function createContainer(options, callback) {
var props;
var socket = new WebSocket("ws://localhost:8081");
socket.onmessage = function(event) {
props = event.data;
};
<callback data={props}>
}

我不完全明白如何最好地写作,所以请帮忙。

最佳答案

我看起来它在 meteor.js 中工作。我明白它应该如何运作。只需要创建一个返回 react.js 组件的函数。并传递参数和组件本身等等。在createContainer函数中,已经可以从websockets获取数据或从indexDB取出数据。

如果非常简单,它可能看起来像这样:

import React from 'react';
export default function createContainer(options = {}, Component) {
return React.createClass({
displayName:'DataContainer',
render() { return <Component data=options />; },
});
}

meteor中组件的完整代码如下:

https://github.com/jedwards1211/react-meteor-data/blob/master/src/createContainer.js

关于javascript - 如何传递react.js数据来创建类似meteor.js或relay.js的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42518194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com