次のES6構文を使用して、リセットが呼ばれたときに状態をデフォルトの状態に戻す最善の方法は何ですか?状態をES6のデフォルトの小道具に戻す
reset() {
if (this.mounted) {
this.setState(()=> {
const newState = {
anchorStandards: {writing: [], reading: []},
gradeLevels: {gradeLevels: []}
}
this.props.onFilterChange(newState)
return newState
})
}
}
しかしがある場合、私は疑問に思って:または別のソリューションをシームレスに
class XYZ extends React.Component {
constructor() {
super(),
this.state = {
...
}
}
reset() {
//I need to revert to default props here
}
}
XYZ.propTypes = {
...
}
XYZ.defaultProps = {
...
}
export default XYZ
技術的に私は次のようにリセットを実装することができます(私はforceUpdateは良い選択肢ではないことを読んで)コンポーネントを再ロードされますこれを呼び出す方法.defaultPros
私はXYZ.defaultPropsを使用していた理由は次のとおりです。 warning.js:36警告:getDefaultPropsプレーンJavaScriptクラスであるXYZで定義されていました。これは、React.createClassを使用して作成されたクラスに対してのみサポートされています。代わりにdefaultPropsを定義するには、静的プロパティを使用します。私がgetDefaultStateを使用していた場合、その構文を使用することができます。 –
まあ、はい。これは、古いReactバージョンでは 'getDefaultProps()'が存在していたので、あなたが間違っていると思っているので警告します。 **これは念頭に置いておいてください**:もしあなたが 'reset()'で行っているように、コンポーネントがそれ自身のデータを変更しているなら、 'props'ではなく' state'と呼ばれるべきです。 'props'、内部決定情報' state' – slezica