2016-10-13 3 views
1

でJavaScriptを反応させる表示:私は2週間前から日付を設定し、この機能を持っているHTML

dateTwoWeeksAgo: function(){ 
    var twoWeeksAgo = new Date().toDateString(); 
    this.setState({twoWeeksAgo: twoWeeksAgo}); 
    }, 

私はこの関数を呼び出して、このコードを持っています。しかし、それは動作していません。どのように変数を表示するのですか?関数の状態を設定しているか、関数から返っていますか?

<h2 className="headings" id="commitTotal"> Commits since {this.dateTwoWeeksAgo} : {this.state.commits.length} </h2> 
+0

完全なコンポーネントコードを共有できますか? –

+0

他に何が見たいですか?ファイル全体を貼り付けるのは大きすぎます。確かに、私は状態を設定した後にデータを表示する簡単な方法がありますか? –

答えて

0

オプション1:あなたはあなたができる状態に開催されたtwoWeeksAgoの値を表示するために:

<h2 className="headings" id="commitTotal"> Commits since {this.state.twoWeeksAgo} : {this.state.commits.length} </h2> 

あなたの状態に更新、実際の方法 - dateTwoWeeksAgo()は - 、例えば呼び出される可能性componendDidMountライフサイクルメソッド。ここで
https://facebook.github.io/react/docs/component-specs.html#mounting-componentdidmount

はデモです:http://codepen.io/PiotrBerebecki/pen/LRAmBr

オプション2:別の方法として、あなただけの

const App = React.createClass({ 
    getInitialState: function() { 
    return { 
     commits: ['One', 'Two'] 
    }; 
    }, 

    dateTwoWeeksAgo: function() { 
    return new Date().toDateString(); 
    }, 

    render: function() { 
    return (
     <div> 
     <h2 className="headings" id="commitTotal"> Commits since {this.dateTwoWeeksAgo()} : {this.state.commits.length} </h2> 
     </div> 
    ); 
    } 
}) 

コードオプションなので、(http://codepen.io/PiotrBerebecki/pen/NRzzaX)のような必要な日付を返すメソッドを呼び出すことができます1:

const App = React.createClass({ 
    getInitialState: function() { 
    return { 
     twoWeeksAgo: null, 
     commits: ['One', 'Two'] 
    }; 
    }, 

    componentDidMount: function() { 
    this.dateTwoWeeksAgo(); 
    }, 

    dateTwoWeeksAgo: function() { 
    var twoWeeksAgo = new Date().toDateString(); 
    this.setState({twoWeeksAgo: twoWeeksAgo}); 
    }, 

    render: function() { 
    return (
     <div> 
     <h2 className="headings" id="commitTotal"> Commits since {this.state.twoWeeksAgo} : {this.state.commits.length} </h2> 
     </div> 
    ); 
    } 
}) 

ReactDOM.render(
    <App />, 
    document.getElementById('app') 
); 
+0

何らかの理由で動作していません。私はそれを 'didMount? 'の中に入れなければなりません。 –

+0

これはうまくいきます。コンポーネントについて重要なことは、その後マウントされましたか? –

+0

componentDidMount()は、ビルドされたReact 'ライフサイクルメソッド'です。これは、コンポーネントがレンダリングされた直後にReactによって一度呼び出されます。これは、たとえばAJAX呼び出しを行う場所です。 React docsへのリンクを追加しました。ここで詳細を知ることができます。上記に何かを追加したいのですか、それともあなたの質問に答えますか? –

1

これは、次のようになります。

<h2 className="headings" id="commitTotal"> Commits since {this.state.dateTwoWeeksAgo} : {this.state.commits.length} </h2> 

違いは、コードのご例えばthis.state.dateTwoWeeksAgo

+0

これも私が思ったものですが、エラーがなくブランクに戻っています –

0

であるあなたは本当にあなたが{this.dateTwoWeeksAgo} to {this.state.dateTwoWeeksAgo}

を変更する必要がある状態を使用したい場合、私はこのアプローチに

dateTwoWeeksAgo: function(){ 
    return new Date().toDateString(); 
    }, 

<h2 className="headings" id="commitTotal"> Commits since {this.dateTwoWeeksAgo()} : {this.state.commits.length} </h2> 

を提案します

+0

これも私が思ったことですが、エラーなしで空白に戻ります –

関連する問題