使用transform更新集合中添加的道具的数据
这是我堆栈溢出的第一个问题,所以请随时要求我更准确。
我在meteor服务器上有一个MongoDB集合。 使用transform选项,我添加了一个简单的可以切换的选定属性:
Nodes = new Mongo.Collection("nodes", { transform : function(item) { item.selected = false; item.toggleSelected = function() { item.selected = !item.selected; } return item; } });
我添加了一个函数toggleSelected
因为我不能修改用meteor的Update函数select的属性(或者我可能不知道如何)。 所以这给我带来了我显示Nodes
列表的问题。 在这个列表中,我可以select和取消select每个节点,当我select它时,我希望带有React的UI来更新自己,以便我们可以看到该节点被选中:
Node = React.createClass({ propTypes: { node: React.PropTypes.object.isRequired, }, render() { return ( <li onClick={this.toggleSelected}> <span>{this.props.node.text}</span> <span className="single-node">Selected : {this.props.node.selected?"true":"false"}</span> </li> ); }, toggleSelected(){ this.props.node.toggleSelected(); } });
我已经知道forceUpdate()函数,但我不想使用它,因为它删除数据驱动的用户界面。 我需要将selected
属性保留在Mongo集合中,因为我有另一个视图取决于selected
值的值。