我需要它的形式。 我的形式是這樣的數據提交: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];
}
}
}
通過調用添加或刪除我必須更新其他屬性之一,所以我可以看到新的屬性我補充道。 我如何觀察它,當我把新的財產?
對不起,我不明白這個問題。你是否介意重新形成'我的問題是,這個工作我必須通過改變價值觸發一次地產中的一個財產,然後輸入新的出現這是可觀察的。當我給地址添加新的屬性時,如何讓它立即顯示?'請用更短的短語? – dagatsoin
我試圖重新表達它,我希望你能理解。 –
'我更新狀態的值'你在哪裏做的?請注意,使用extendObservable添加的屬性將不會觸發任何觀察者,因爲實際上只會觀察觀察者初始化中存在的屬性。它有幫助嗎? – dagatsoin