我正在使用React和Bacon.js构建一个应用程序。

我有这样的学生名单:

var students = [
   {"name": "student1"}
   ...
];


然后,我使用Bacon.bus构造一个EventStream。

var studentStream = new Bacon.Bus();
students.forEach(studentStream.push.bind(studentStream));


我想做的就是每当我将新数据推送到总线上时,都想用新数据更新视图。

var studentContainer = React.createClass({
    getInitialState: function () {
        return {students: []};
    },
    componentWillMount: function () {
        // 1: convert this.prop.studentStream to an array so it can be rendered
        // 2: Set state to the new array
    },
    render: function () {
        ...
    }
});

最佳答案

您在这里很近。在您的React组件中,订阅您的事件总线:

componentDidMount: function() {
    studentStream.onValue(function(val) {
        this.setSate({ students: val });
    }.bind(this));
}


无论将什么值推送到studentStream中,都将流入您组件的状态。我还建立了一个用于使用React.js和Bacon.js的小型库:https://www.npmjs.org/package/fluxstream

关于javascript - 将培根流中的所有值组合到单个数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27257780/

10-11 12:17