我遇到了有条件呈现的问题。 这里是我的100%工作的看法:CycleDOM有条件呈现问题
function todoItem(todo) {
return li('.list-item',[
todo.editing ? input('.todo-edit', {type: 'text', value: todo.text, autofocus: true, attributes: { 'data-id': todo.id }}) : '',
!todo.editing ? span(`.todo ${todo.completed ? '.completed' : ''}`, { attributes: { 'data-id': todo.id }}, todo.text) : '',
button('.remove-todo', {type: 'button', value: todo.id}, 'remove'),
todo.completed ? button('.unmark-todo', {type: 'button', value: todo.id}, 'unmark') : '',
!todo.completed ? button('.mark-todo', {type: 'button', value: todo.id}, 'mark as done') : ''
]);
const view = (state$) => {
return state$.map(todos =>
div([
input('.todo-input', {type: 'text', placeholder: 'Todo', value: ''}),
ul(todos.items.map(todo => todoItem(todo))),
footer(todos)
])
);
};
问题是,当我试图改变条件按钮的的if-else语句,而不是两个独立的条件:
todo.completed ?
button('.unmark-todo', {type: 'button', value: todo.id}, 'unmark') :
button('.mark-todo', {type: 'button', value: todo.id}, 'mark as done')
看来,按下该键则按钮“取消标记”,然后再次回到“标记”(我已经证实,与控制台日志)。我的意图被映射到这两个类.mark和.unmark,所以我不认为这是一个问题......
那是一个实际的错误还是我失去了一些东西?
创建填充或http://webpackbin.com – WHITECOLOR
这大概是这样的错误:https://github.com/cyclejs/core/issues/228 –