我在商店中创建了observable
属性,如下所示
class Store {
@observable values = { id: '', name: '' }
}
这个可观察对象用在一个表单中,如何在提交表单后重置这些值?
答案 0 :(得分:1)
您可以使用extendObservable并在班级上实施 string template = string.Empty;
string simpleString = "Test Value";
string interpolatedString = $"Name: {simpleString}";
//interpolatedString is now "Name: Test Value"
string filePath = Path.GetFullPath("Templates/ToEnrollee.html");
using (StreamReader reader = new StreamReader(filePath))
{
template = reader.ReadToEnd();
}
//I would like interpolation to take place here
string body = string.Format(template);
方法:
reset
答案 1 :(得分:0)
@Tholle如果您不将属性扩展到this.values
可观察量,那么解决方案就很好。如果这样做,reset()
方法将不会清除新扩展的属性。
以下是我的解决方案:
class Store {
const initValues = {id: '', name: ''};
@observable values = {};
@action resetValues() {
Object.keys(this.values).forEach(key => delete this.values[key]);
extendObservable(this.values, initValues);
}
constructor() {
This.resetValues();
}
}
甚至更好,改为使用可观察的地图:
class Store {
const initValues = {id: '', name: ''};
@observable values = new Map();
@action resetValues() {
this.values.replace(initValues);
}
constructor() {
this.resetValues()
}
}