私はフォーム上でそれが必要です。 は私のフォームはデータで、このようなものです提出:Mobx - ダイナミックなフォーム入力で深い変化をどのように追跡するのですか?
const initial = {
name "",
surname: "",
adresses: new Array() <- this give me warning when array empty *
}
私の住所が、私はいくつかの標準的な性質を持っているオブジェクトの配列であり、私は{状態のextendObservable 住所が型を使用して、新しいプロパティを追加することができます。「」町:「」}
extendObservable(this.props.data['adresses'][i], { [keyName]: '' });
私の問題は、住所がに新しいプロパティを追加するextendObservableをやって、私は(観察)ライブの変化を見ることはありませんが、extendObservableを行った後、私は状態の値を更新し、場合ということです私は新しい追加プロパティを見ることができます。なぜ私は住所にそれを追加すると、新しいプロパティが表示されません?私は他のプロパティのいずれかを更新する必要があるので、私は私が追加された新しいプロパティを参照することができます追加または削除を呼び出すことによって
const initial = {
namel: "",
surname: "",
addresses: new Array()
}
export class formStore {
constructor() {
this.formData = initial
}
@observable formData: {
[index: string]: any,
name: string,
surname: string,
addresses: any[]
};
@action updatePropertyForm(key: string, value: any) {
this.formData[key] = value;
}
@action updatePropertyAddresses(key: string, value: string, i: number) {
this.formData.addresses[i][key] = value;
}
@action initializeFormData(data: any) {
this.formData = data;
}
@action addEmptyAddress() {
const emptyAddress = {
state: "",
townl: "",
}
this.formData['addresses'].push(emptyAddress);
}
@action addPropertyToAddresses(_keyName: string) {
const length = this.formData['addresses'].length;
for (var i = 0; i < length; i++) {
let keyName = _keyName
keyName = keyName.replace(/\s/g, '')
keyName = toLowerChar(keyName);
extendObservable(this.formData['addresses'][i], { [keyName]: '' });
}
}
@action removePropetyFromAddresses(_keyName: string) {
const length = this.formData['addresses'].length;
for (var i = 0; i < length; i++) {
let keyName = _keyName
delete this.formData['addresses'][i][keyName];
}
}
}
:
私の店は、この(typescriptです)です。 私は新しいプロパティを置くときそれを観察する方法?
申し訳ありませんが、私は問題を理解していません。私の問題は、これを働かせるには、値を変えて住所を知ってから新しいものが出現するようにしなければならないということです。私は新しい属性を住所に加えるとすぐにどのように表示されるのですか? – dagatsoin
私はそれを再構成しようとしました、あなたが理解して欲しいです。 –
'私はstateの値を更新する'あなたはそれをどこで行うのですか? observerの初期化に存在するプロパティのみが実際に観察されるため、extendObservableで追加されたプロパティはオブザーバをトリガしません。助けてくれますか? – dagatsoin