reactjs - 反应破坏状态的方法与使用参数
问题描述
一般来说,在这样的反应中使用破坏状态会更好:
editSaveToggle () {
const{ toggle, itemToSave} = this.state
return toggle ?
<div><SaveView item = {itemToSave}/></div> :
<div><EditView item = {itemToSave}/></div>
}
在更常规的参数使用上:
editSaveToggle (itemToSave, toggle) {
return toggle ?
<div> <SaveView item = {itemToSave}/></div> :
<div><EditView item = {itemToSave}/></div>
}
有关系吗?整个社区有偏好吗?对我来说,传入参数很容易阅读和理解,所以我不太确定在方法中封装状态会得到什么。
解决方案
这完全取决于应用程序。因此,如果您的数据处于状态,那么您不需要将其作为参数传递,因为以解构方式编写它是完全可以读取的。
const{ toggle, itemToSave} = this.state;
从状态中提取数据并可以在代码中进一步使用它在这里非常易读。
如果您有用例,例如您在函数中需要的数据是您从中调用它的函数的某个局部变量,那么除了将其作为参数传递之外,您别无选择。
或者另一个用例是您想让函数动态化,以便它可以根据状态数据或某些局部变量的数据做出决策,在这种情况下使用函数参数是有意义的。
因此,两者都有自己的应用程序和用例。两者都是更简洁的编码方式并且易于阅读。
推荐阅读
- react-native - Mangopay:不能刷卡
- apache-spark - 当我从 COBOL 文件中读取十进制值时,它们为 NULL
- shell - 使用 shell 将逗号分隔值转换为列表
- python - 如果变量由递增的数字组成,为什么它的值不会改变?
- angular - 调整浏览器窗口大小时如何更改列数?
- linux - 没有选择正确的 GCC 版本
- r - 匹配字符值并更改 R 中不同列中的相应值
- android - SharedPreferencesListener 无故停止工作
- twilio - 识别 Twilio 视频室中的电话呼叫者
- python-2.7 - 用新的字符串文本替换结束字符串文本