import { ComponentProps, console, Component, Event } from "waft"; import { JSONObject } from "waft-json"; import { lodash } from "waft-ui-common"; export class Switch extends Component { constructor(props: ComponentProps) { super(props); } willMount(props: JSONObject): void { // 将props中的checked同步至state(state优先级高) let stateData: JSONObject = new JSONObject(); stateData.set("checked",lodash.getBool(props, "checked", false)) this.setState(stateData); } onTap(e: Event): void{ let stateData: JSONObject = new JSONObject(); let returnData: JSONObject = new JSONObject(); let checked = lodash.getBool(this.getDeepMergeState(),"checked") stateData.set("checked",!checked) // 设定返回数据 returnData.set("status", !checked ? "on" : "off"); this.setState(stateData); this.props.dispatch("onTap", returnData); } }