使用transform更新集合中添加的prop的数据

时间:2016-02-04 21:29:54

标签: javascript node.js mongodb meteor reactjs

这是我关于Stack Overflow的第一个问题,所以请随意让我更准确。

我的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函数选择的属性(或者我可能不知道如何)。所以这让我想到了显示Nodes列表的问题。在此列表中,我可以选择和取消选择每个节点,当我选择它时,我希望带有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()函数,但我不想使用它,因为它删除了数据驱动的UI。我需要在Mongo集合中保留selected属性,因为我有一个取决于此selected值的其他视图。

0 个答案:

没有答案