小菜鸟在看这篇教程: https://www.meteor.com/tutorials/react/update-and-remove
代码片段如下:
toggleChecked() {
Tasks.update(this.props.task._id, {
$set: { checked: !this.props.task.checked },
});
}
<button className="delete" onClick={this.deleteThisTask.bind(this)}>
×
</button>
请问这里突然出现的“$set ”和“× ”是怎么来的(前文无预先定义)?我应该去哪里学习相关的知识点? 还有一个疑问,这里的 bind()方法是谁提供的? JS 原生?还是 React 提供?为何还要传入一个 this ?
还请帮忙指点小菜鸟,谢谢。
1
raincious 2016-07-24 17:59:56 +08:00 1
× 是 HTML 的符号(其实是乘号),看起来像 x
https://en.wikipedia.org/wiki/Multiplication_sign#In_computer_software $set 则是 React 里的 |
2
shiny 2016-07-24 18:03:35 +08:00 1
$set 只是 JSON 的 key ,不是一个变量; × 是 HTML entities , 参见这个表格 https://dev.w3.org/html5/html-author/charref
bind 是 js 原生语法,多读一些 js 的书里有具体解释。 |
3
shiny 2016-07-24 18:04:21 +08:00 1
使用 bind 的原因是涉及 js 的作用域,这个是一个难点(敲黑板)
|
4
sphawkcn OP 谢谢各位老大指点,又学到了黑科技,谢谢。
|
5
otakustay 2016-07-24 18:54:31 +08:00 1
那个$set 十有八九是 immutable update 的方法,应该是 react update helper ,具体也可以参考我的一个类似的库: https://github.com/ecomfe/diffy-update/
react 的 update helper 的文档没这么详细: https://facebook.github.io/react/docs/update.html |
6
zhouyg 2016-07-25 11:32:33 +08:00 1
$set 应该是 Task 的,类比 node mongo 里的 update 方法,就是用$set 来表示要更新的字段和值
|