3

私は機能を持っています:

    getCommits: function() {
    fetch('/commits').then((response) => {
        if (response.status >= 400) {
            throw new Error("Bad response from server");
        }
        return response.json();
     })
     .then((commits) => {
       this.setState({commits: commits});
     });
  },

この関数で状態を設定し、他の関数がこの状態にアクセスできるようにします。これどうやってするの?

this.state.commits私が持っていた1つのアイデアでした。

     getTodaysCommits: function(){
     fetch('/commits').then((response) => {
        if (response.status >= 400) {
            throw new Error("Bad response from server");
        }
        return response.json();
     })
     .then((commits) => {
       var todaysCommits = [];
       for (var i = 0; i < commits.length; i++) {
         var today = new Date().toDateString();
         var stringToDate = new Date(commits[i].commit.author.date).toDateString();
         if (today == stringToDate){
           todaysCommits.push(commits[i])
         }
       }
       return todaysCommits;
     })
     .then((todaysCommits) => {
       this.setState({commits: todaysCommits});
     })
  },

この関数では、API からフェッチせずにコミットを使用し、前の関数で設定された状態を使用するにはどうすればよいですか?

componentDidMount: function() {
    this.getCommits();}

機能が設定されていますcomponentDidMount

4

1 に答える 1

4

まず、状態が設定されていることを確認する必要があります。次に、コンテキスト状態を参照してアクセスできるようにしますthis.state.commits

正しいコンテキストを参照していることを確認する必要があります。

関数で次のように使用します

getTodaysCommits: function(){

    var commits = this.state.commits;
    console.log(commits);

}
于 2016-10-13T10:34:51.057 に答える