2017-08-27 8 views
0

コードは次のようである:メソッドを使用してreact componentDidMountの状態を設定する方法は?

componentDidMount() { 
    this.setState(({getPublicTodosLength}, props) => ({ 
     getPublicTodosLength:() => this.getPublicTodosLengthForPagination() // no returned value 
    })); 
    } 
    getPublicTodosLengthForPagination = async() => { // get publicTodos length since we cannot get it declared on createPaginationContainer 
     const getPublicTodosLengthQueryText = ` 
      query TodoListHomeQuery {# filename+Query 
      viewer { 
       publicTodos { 
       edges { 
        node { 
        id 
        } 
       } 
       } 
      } 
      }` 
    const getPublicTodosLengthQuery = { text: getPublicTodosLengthQueryText } 
    const result = await this.props.relay.environment._network.fetch(getPublicTodosLengthQuery, {}) 
    return result.data.viewer.publicTodos.edges.length; 
    } 

getPublicTodosLengthForPaginationが起動されておらず、私は、例えばすぐに起動すると返される値は、assigned.Alsoありませんwithout()=>割り当てられた値は約束ですか?私はint/number、edges.lengthの戻り値を期待しています。助けて?

+0

コンソールにエラーがありますか? – stybl

+0

@styblエラーは表示されません。すぐに呼び出します。 without()=>それは約束に割り当てられていますか? –

答えて

0

関数を割り当てずに呼び出しているため、戻り値は割り当てられません。

componentDidMount() { 
    this.setState(({getPublicTodosLength}, props) => ({ 
     getPublicTodosLength: this.getPublicTodosLengthForPagination() 
    })); 
    } 
0

なぜあなたはそのような状態を設定しているのかわかりませんが、あなたがしていることを説明するのに役立つかもしれません。それでは、このように書くべきではありません:

関連する問題