1

React でイベントが発生したときに行われる API 呼び出しは、理想的にはどこに配置する必要がありますか

eventHandlerまたはcomponentDidUpdate?の内部

例:

handleItemClick = (item) => (event) => {
  this.setState({selectedItem: item});
  this.props.requestDataActionDispatch(item);
}

また

componentDidUpdate(prevProps, prevState, snapshot) {
  if(prevState.item !== this.state.item) {
    this.props.requestDataActionDispatch(item);
  }
}
4

3 に答える 3

1

依存する

しかし、簡単な解決策は、状態値の変更後に何らかの API を呼び出したい場合は、eventHandler. もチェックしcallbackてくださいsetState

handleItemClick = (item) => (event) => {
  this.setState({selectedItem: item}, () => this.props.requestData(item));
}
于 2019-06-26T09:56:15.220 に答える
1

コンポーネントの更新を待つ理由はありません。イベント ハンドラーに入れるだけです。

当然のことながら、どちらの場合でも、コンポーネントは、選択されたアイテムを持っているが API からのデータがまだない場合に適切にレンダリングする方法を知る必要があります...


(補足:コンポーネントの状態が変化する場合 requestDataActionDispatchは、リクエストの前に選択された項目を設定するときにその状態をクリアする必要があるため、1 つの項目が選択されていなくても、前の項目に関連する状態が保持されます。 . しかし、私はそれがオンpropsになっているという事実から推測しています.

于 2019-06-26T09:54:29.327 に答える