魔法字符串:指的是,在代码之中多次出现、与代码形成强耦合的某一个具体的字符串或数值。风格良好的代码,应该尽量消除魔法字符串,而由含义清晰的变量代替。
(ES6 --阮一峰)
下面这段代码的意思是:根据不同的状态弹出不同的对话框,其中这个"1"就是个魔法字符串。 在代码中多次用到,与代码形成强耦合,不利于将来的修改和维护
const { UserInfoStore: { data },
} = this.props;
if (data.cardCheck && data.bankCheck) {
switch (data.cardCheck) {
case "1"
:
this.setState({ text: "请先进行身份认证", junmpRoutName: "IDSureScreen" })
break;
case "2"
:
data.bankCheck == "1" ?
this.setState({ text: "您还未绑卡,是否前往绑卡?", junmpRoutName: "BandCardScreen" })
:
this.setState({ junmpRoutName: "MyBankInfoScreen" }); //银行卡页面
break;
}
}
可以这样修改
const { UserInfoStore: { data },
} = this.props;
const type = {
NoBangd:"1",
bangded:"2",
}
if (data.cardCheck && data.bankCheck) {
switch (data.cardCheck) {
case type.NoBangd
:
this.setState({ text: "请先进行身份认证", junmpRoutName: "IDSureScreen" })
break;
case type.bangded
:
data.bankCheck == type.NoBangd ?
this.setState({ text: "您还未绑卡,是否前往绑卡?", junmpRoutName: "BandCardScreen" })
:
this.setState({ junmpRoutName: "MyBankInfoScreen" }); //银行卡页面
break;
}
}
把 “1” “2” 方到一个对象中 消除代码块的强耦。