5
React / Redux / Typescript通知メッセージで、コンポーネントをそれ自体からマウント解除、レンダリング解除、または削除する方法
私はこの質問がすでに何度か尋ねられていることを知っていますが、ほとんどの場合、解決策は親でこれを処理することです。責任の流れが下降しているだけだからです。ただし、コンポーネントをそのメソッドの1つから強制終了する必要がある場合があります。その小道具を変更できないことはわかっています。状態としてブール値を追加し始めると、単純なコンポーネントの場合は本当に面倒になります。これが私が達成しようとしていることです:小さなエラーボックスコンポーネントで、それを閉じるための「x」があります。小道具を介してエラーを受け取ると表示されますが、独自のコードからそれを閉じる方法が欲しいのですが。 class ErrorBoxComponent extends React.Component { dismiss() { // What should I put here? } render() { if (!this.props.error) { return null; } return ( <div data-alert className="alert-box error-box"> {this.props.error} <a href="#" className="close" onClick={this.dismiss.bind(this)}>&times;</a> </div> ); } } export default ErrorBoxComponent; そして、私はそれを親コンポーネントで次のように使用します: <ErrorBox error={this.state.error}/> セクションでは 、私はここで何を置くべきですか?、私はすでに試しました: ReactDOM.unmountComponentAtNode(ReactDOM.findDOMNode(this).parentNode); これはコンソールに素敵なエラーを投げます: 警告:unmountComponentAtNode():アンマウントしようとしているノードは、Reactによってレンダリングされたものであり、最上位のコンテナではありません。代わりに、このコンポーネントを削除するために、親コンポーネントの状態を更新して再レンダリングしてください。 ErrorBox状態で着信プロップをコピーし、内部でのみ操作する必要がありますか?