2016-05-23 3 views
1

こんにちは私はチェックボックスのチェックをしているときに問題があります。だから私ができるようにしたいのは、チェックボックスをクリックするとチェックを外してチェックを外すことです。しかし、一度それをチェックすると、それは小切手で固まってしまい、もう何もできません。ここに関連コードがあります!ここでチェックボックスの入力でメテオを使用する

import React, {Component} from 'react'; 

export default class ResolutionSingle extends Component { 

    toggleChecked() { 
    Meteor.call('toggleResolution', this.props.resolution._id, this.props.resolution.copmlete); 
    } 

    deleteResolution() { 
    Meteor.call('deleteResolution', this.props.resolution._id); 
    } 

    render() { 
    return (
     <li> 
     <input type="checkbox" 
       readOnly={true} 
       checked={this.props.resolution.complete} 
       onClick={this.toggleChecked.bind(this)} /> 
     {this.props.resolution.text} 
     <button className="btn-cancel" 
      onClick={this.deleteResolution.bind(this)}> 
      &times; 
     </button> 
     </li> 
    ) 
    } 
} 

は、ここでの方法

Meteor.methods({ 
    addResolution(resolution) { 
    Resolutions.insert({ 
     text: resolution, 
     complete: false, 
     createAt: new Date() 
    }); 
    }, 
    toggleResolution(id, status) { 
    Resolutions.update(id, { 
     $set: {complete: !status} 
    }); 
    }, 
    deleteResolution(id) { 
    Resolutions.remove(id); 
    } 
}); 

あるあなたがあなたのコードにタイプミスがあり、メインラッパー

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import TrackerReact from 'meteor/ultimatejs:tracker-react'; 

import ResolutionsForm from './ResolutionsForm.jsx'; 
import ResolutionSingle from './ResolutionSingle.jsx'; 


Resolutions = new Mongo.Collection("resolutions"); 

export default class ResolutionsWrapper extends TrackerReact(React.Component) { 
    constructor(){ 
    super(); 

    this.state = { 
     subscription: { 
     resolutions: Meteor.subscribe("allResolutions") 
     } 
    } 
    } 

    componentWillUnmount() { 
    this.state.subscription.resolutions.stop(); 
    } 

    resolutions() { 
    return Resolutions.find().fetch(); 
    } 

    render(){ 
    return (
     <div> 
     <h1>My Resolutions</h1> 
     <ResolutionsForm /> 
     <ul className="resolutions"> 
      {this.resolutions().map((resolution)=>{ 
      return <ResolutionSingle key={resolution._id} resolution={resolution} /> 
      })} 
     </ul> 
     </div> 
    ) 
    } 
} 
+0

ええと、これは大丈夫です。 propsが 'ResolutionSingle'に渡されるコードを含めてください。 – aedm

+0

ResolutionSingleを使用するメインラッパーを追加しました!私はあまりにも私が見ているtutと同じコードを持っていることをかなり確信しています。彼はこれをLinux上でやっています。私は窓でそれを行いますが、ここで違いがあるはずはありません。私の小切手は、私が小切手をしたときにチェックされたままですまたは、値はトグルではなく真のままです。 – tdog

答えて

1

です。

Meteor.call('toggleResolution', this.props.resolution._id, this.props.resolution.copmlete); 

それはcompleteの代わりcopmleteでなければなりません。将来のようなエラーを避けるために、Meteorメソッドでcheck関数を使用することができます。

+0

あなたは救い主です!そして私はそれを念頭に置いておきたいと思います。 – tdog

関連する問題