2017-12-06 3 views
0

reduxストアでpropsが更新されると、クエリを呼び出す必要があります。しかし、このようなことは起こっていません。コンポーネントがロードされたときに一度だけクエリが呼び出されます。小道具が更新された後、私は再取得の方法を試してみましたApolloクライアントでpropsが変更されたときに、jsが応答するとクエリが呼び出されない

const sampleData = compose(graphql(ITEMS_BY_CATEGORY, {name:"itemByCategory", options: (props) => ({variables: {_id:props.user._id,searchstring:"", start:0,limit:10, itemype:"created",categoryid:props.categoryid}})}))(samplePage) 

export default connect(
    (state) => ({user: state.user.user,categoryid: state.item.categoryid}), 
    {} 
)(sampleData); 

- -

私のコードは次のようです。 Like - this.props.data.refetch()。しかし、それはまた動作しませんでした。

答えて

1

componentWillReceiveProps()を追加し、そこにクエリを呼び出します。コンポーネントが新しい小道具を受け取るたびに実行されます。 render関数をクエリの結果と一緒に再実行する必要がある場合は、forceUpdate();

componentWillReceiveProps(nextProps) { 
     const localThis = this; 
     this.client.query({ 
      query: MY_QUERY, 
      variables: {myVar: theVar}, 
     }).then((result) => { 
      localThis.setState({myStateVar: result.data.relevantData}); 
      localThis.forceUpdate(); 
     }); 
    } 
関連する問題