私は数多くの投稿を見て、何か小さいものが見つからないように感じています。私はコンポーネントクラスの前にいくつかのドロップダウンが定義されたjsonschemaフォームを持っています。それらを設定するには、componentDidMount
にフェッチを使用し、ドロップダウンの列挙型に返された値をプッシュします。レンダー時にドロップダウンは空ですが、別のタブをクリックして戻ると、ドロップダウンに値が入力されます。最初のレンダリング時にどのように表示されるのですか?以下のコード。ReactJS - 動的にjsonschemaドロップダウンを更新します。
jsonschema:
const schema = {
type: 'object',
required: ['contextID'],
properties: {
contextID: { type: 'string', title: 'Context ID, enum: [], enumNames: [] }
}
}
componentDidMountは、フェッチ:
}).then(function(json) {
this.setState({contextIDArray: json.List},() => {
schema.properties.contextID.enumNames.push(this.state.contextIDArray);
schema.properties.contextID.enum.push(this.state.contextIDArray);
console.log("SCHEMA:: ", schema.properties.contextID.enumNames);
});
}.bind(this)).catch(() => {
this.setState({
value: 'no response - cb catch'
})
})
私が探していたものは、素晴らしい仕事でした!ドロップダウンの列挙を更新していましたが、実際にその更新をDOMにプッシュして変更内容を反映させていなかったと思います。更新されたスキーマを状態オブジェクトに割り当てると、そのフォームを小道具として指し示すことは簡単な修正でした。ありがとう! – user7674254