【发布时间】:2016-08-11 17:12:00
【问题描述】:
我正试图将我的头包裹在 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调用view? -
我不确定你的代码,你需要一些 state.map() 映射到 div。这个例子可能会让你走上正轨github.com/cyclejs/examples/blob/master/http-search-github/src/…
标签: javascript cyclejs