- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
全部:
我是 React 的新手。当我关注它的 TodoMVC example ,有一个问题让我很困惑:
在 TodoApp 组件内部,它使用 TodoStore.addChangeListener 注册其处理程序:
componentDidMount: function() {
TodoStore.addChangeListener(this._onChange);
},
_onChange: function() {
this.setState(getTodoState());
}
并让 TodoStore.addChangeListener 中的 CHANGE_EVENT 触发 _onChange 回调:
addChangeListener: function(callback) {
this.on(CHANGE_EVENT, callback);
},
这里让我感到困惑的是:
“this.on”如何知道该回调的上下文(我的意思是它如何记住 _onChange 中的“this”)
如果有多个 TodoApp 注册它们的 _onChange,那么 todoStore 将维护所有回调的列表怎么办?
谢谢
最佳答案
this.on
中的this
指的是Store。提供的回调引用 _onChange
函数,该函数使用自己的 this
。为了让它工作,它需要绑定(bind)到 TodoApp
。我认为这个例子来自 React 的自动绑定(bind)时代。现在,您可以在 componentDidMount
或类构造函数中使用 .bind
。本地绑定(bind)
componentDidMount: function() {
TodoStore.addChangeListener(this._onChange.bind(this));
},
OR 类绑定(bind)(= () =>
为类创建一个 arrow function,在构造函数范围内关闭 this
)
class TodoApp extends React.Component {
componentDidMount = () => {
TodoStore.addChangeListener(this._onChange);
}
_onChange = () => {
this.setState(getTodoState());
}
}
关于reactjs - addChangeListener 如何在 Facebook React Todo 示例中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34006244/
(很抱歉问了这个简单的问题,但我不知道如何在 [...] 上搜索) 我不是 Javascript 英雄,但我也不是初学者。我在 tutorial 中看到了下面的代码并且不明白为什么没有使用 push
我正在尝试通过 https://www.meteor.com/tutorials/angular/templates 上的 Meteor 教程有一部分我想不通在他们的 client/main.js 中
我一直在努力寻找这个问题的答案,并且我了解如何更改 TODO 突出显示的颜色。我的问题是,有没有办法让我在编辑器中标记为“完成”的自定义“待办事项”使用不同的颜色? (不在任务列表中- Ctr+Alt
我一直在用 Angular 2 做一个待办事项应用程序来掌握概念......value="{{todo.title}}" 和 [value]="todo.title" 有什么区别? 最佳答案 来自 A
推荐 https://github.com/basecamp/bcx-api/blob/master/sections/todos.md和 https://github.com/basecamp/bc
我是 django 新手,运行后遇到以下问题:找不到“delete_task/{{todo.id}}”的反向操作。 “delete_task/{{todo.id}}”不是有效的 View 函数或模式名
我是 django 新手,运行后遇到以下问题:找不到“delete_task/{{todo.id}}”的反向操作。 “delete_task/{{todo.id}}”不是有效的 View 函数或模式名
假设我必须管理一些列表,每个列表中都有一些待办事项。 但是每个待办事项都可以与其他实体相关:比如说一个用户(调用它),或者一个文档(比如编辑它),或者任何其他由我的应用程序管理的实体。 我只看到两种解
我正在尝试创建一个 RESTful Web 服务,我创建了一个,但我得到了一个 MessageBodyWriter not found for media type=application/json
我需要 Hook 以突出 Ruby、Lisp 和类 C 语言中的 TODO 的根模式是什么。我尝试了以下操作,但它没有在 Ruby 或 Lisp 中突出显示 TODO: (defun highligh
我想为一个功能添加多个待办事项。 将它们添加到 phpDoc 注释 block 中的正确方法是什么? 我知道我应该使用@todo 标签。但我不确定是应该为每个项目使用一个 @todo 标签,还是为整个
我喜欢在 TextMate 中使用待办事项列表,但我一直遇到问题是找不到或未在项目中列出待办事项。如果我关闭一个项目并重新打开该项目并使用 ctrl+shift+t 拉出待办事项列表,列表将正确显示。
这个问题与另一个问题有关,Emacs :TODO indicator at left side .我最近遇到了一个我非常喜欢的次要模式,叫做 FixmeMode .支持的自动高亮待办事项 标记,并在它
如标题所示,如何在Eclipse的“任务”窗口中一次显示100多个任务?另外,如何浏览超过100的任务? 我的项目中有很多.c文件,其中有很多// TODO 当我转到“任务”窗口时,它显示: Filt
我希望能够普遍使用重复条目,但也能够跳过特定日期。例子: ** TODO swim practice SCHEDULED 但是,我提前知道 2013-12-25 不会有练习。但是,当我将项目标
我注意到,当我查看待办事项列表时,我通常只从该部分的上半部分完成工作,因为我从上到下阅读,当我读到底部的一半时,我找到一个可以完成的TODO。所以我想知道,有没有办法混合 TODO 列表,以便顺序随机
我试图编写一个 ToDo 应用程序,但我的复选框一开始就有问题...... http://jsfiddle.net/LRQyv/ 模板: {{view Todos.CreateTodoView
基本上我需要删除一个被点击的 ToDo,但是因为 ToDo 没有唯一的 id..它删除了所有这些..我尝试了 UUIDV4 但我没有成功将它添加到每个 ToDo App.js class App ex
我的 JS 代码有问题的编码新手。它在过去几天一直在工作,然后我不确定现在发生了什么,它在第 (17) 行 todos.push(task) 上给我一个错误;错误说“todos.push() 不是一个
我正在开发一个简单的问答待办事项应用程序,我注意到当一个很长的列表项被添加到列表中时,它会将按钮推出。 有没有一种方法可以在文本节点点击按钮边距时使 LI 元素变大,而不是将按钮推出 LI 元素。下面
我是一名优秀的程序员,十分优秀!