繁体   English   中英

使用 Oboe.js 设置 React State 的正确方法是什么?

[英]What is the correct way of setting React State with Oboe.js?

我是 React-JS 和 Oboe.js 的新手。 我正在尝试通过使用双簧管来加速加载一些 JSON 数据到 stream 结果。 不幸的是,我无法在 function 块中更新 state。 所以我尝试调用另一个执行 stateSet 的 function。 以下是我尝试过但不起作用的方法。 它出错了映射 function,该映射使用搜索结果将其呈现在表中。

var that = this;

oboe({
            url: //url,
            method: 'POST',          // optional
            body: //POST-DATA,     // optional
        })
        .on('node', '*', function(things){

            that.updateState(things);
            // This callback will be called everytime a new object is
            // found in the foods array.
      
            console.log( 'Go eat some', things.id);
         });

 updateState = (props) => {
        this.setState({search-result: props});
    }

我不确定用 oboe.js 和 React 更新 state 的正确方法是什么?

是否有更好的库可用于将 JSON 数据流式传输到 React?

推荐的方法

如果您有能力在服务器端进行更改,那么我不建议您为此使用双簧管。 如果您唯一的选择是加载大型 JSON object 并且您想在整个事情被解析之前访问该数据,则双簧管很有用。

优化在客户端上加载大量数据的最佳方法是一次发送更少的数据并发出多个请求。 web-socket 是最好的方法, Socket.io是一个很好的工具。

如果您需要使用双簧管

我正在整理一个 oboe.js + react 的示例供您查看,尽管这很棘手,因为 Oboe 的大部分活动都发生在 React 生命周期之外。 我会用那个例子更新这个答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM