waft提供了全局状态store。
store数据获取
improt { store } from 'waft';
const globalData = store.getGlobalData();
const menuData = globalData.getObject("globalData");
store设置数据
import { store } from 'waft'
store.dispatch('menuData', new JSONObject())
store更新订阅
在component或者page中,可以通过this.observer方法监听全局store的更改。
immediate参数:是否立即返回监听字段的初始值。
export class Login extends Page {
constructor(props: ComponentProps) {
super(props);
// 监听全局store变化
this.observer(['menuData'], (key:string, data: JSONObject)=>{
console.log('menuData change:' + data.toString());
}, {
immediate: true
});
}
}
store默认映射到当前页面的state
在component或者page中,可以通过this.connect方法把store中的内容订阅并同步到page的state上。
第二个参数可以传入一个reducer,修改参数再返回。return null时不处理。
export class Login extends Page {
constructor(props: ComponentProps) {
super(props);
// 自动把store的key内容同步到page的state
this.connect(['menuData']);
// 监听全局store变化,并修改;
this.connect(['menuData'], (key:string, data: JSONObject, oldData: JSONObject | null)=>{
return data;
});
}
}