著者。私はあなたの質問に遭遇し、3.xにいくつかの急激な変化があるので、詳細な答えをフォローアップしたいと思った。このコンポーネントには、異なるユースケースに基づいてUnControlled
とControlled
のバリアントが同梱されています。 onBeforeChange
コールバック内でsetState
と呼んでいることがわかります。あなたのケースでは、私は制御の変形例では、このような...
import {Controlled as CodeMirror} from 'react-codemirror2'
<CodeMirror
value={this.state.value}
options={options}
onBeforeChange={(editor, data, value) => {
this.setState({value}); // must be managed here
}}
onChange={(editor, metadata, value) => {
// final value, no need to setState here
}}
/>
として制御コンポーネントを活用することをお勧めしたい、状態を管理することは任意の変更を確認するためにvalue
小道具にを必要とされます。
また、UnControlled
成分も同様にonBeforeChange
コールバックを有し、まだonBeforeChange
が指定されている場合next
が呼び出されるまでのような異なる動作と...ここ
import {UnControlled as CodeMirror} from 'react-codemirror2'
<CodeMirror
value={value}
options={options}
onBeforeChange={(editor, data, value, next) => {
// hook to do whatever
next();
}}
onChange={(editor, metadata, value) => {
}}
/>
しかしながら、onChange
を延期します。そうでない場合は、onChange
が発生します。ただし、UnControlled
の亜種を使用すると、エディタは常に入力の変更に反応します。onChange
が呼び出された場合とそうでない場合の違いは簡単です。
これらの変更はコミュニティのニーズから派生したものです。期待どおりに動作しないものがあれば、open an issueにご連絡ください。