我正在尝试理解CycleJS,但我卡住了!我正在尝试创建一个小应用程序,加载包含对象数组的JSON文件,但我无法使应用程序执行http请求。
以下是我目前的代码:
'use strict';
import Rx from 'rx';
import Cycle from '@cycle/core';
import {h, makeDOMDriver} from '@cycle/dom';
import {makeHTTPDriver} from '@cycle/http';
function intent(DOM) {
return {
edit: DOM.select('div')
.events('click')
.map(evt => evt.target.value),
add: DOM.select('div')
.events('click')
.map(evt => evt.target.value)
};
}
function model(actions, response) {
return response
}
function view(state) {
return state.map(item => {
h('div', [
item.map(todo => h('div', todo.title))
])
});
}
function main(sources) {
const URL = 'http://localhost:3000/js/planinator/data.json';
let response = sources.HTTP
.mergeAll()
.map(res => res.body)
.startWith([]);
const actions = intent(sources.DOM);
const state = model(actions, response);
return {
DOM: view(state),
HTTP: Rx.Observable.of(URL)
}
}
Cycle.run(main, {
DOM: makeDOMDriver('#appmount'),
HTTP: makeHTTPDriver()
});
我想要实现的是:目前加载JSON数据并将其呈现为div标签。
当我在Chrome中运行代码时,控制台会显示以下内容
bundle.js:14182 TypeError: Cannot read property 'subscribe' of undefined(…)
我已经查看了stackoverflow上发现的问题,但它们没有让我有所进展。
sources.HTTP
还是request
来调用视图函数? - Andrew Van Slaars