React:如何分配对象道具的默认属性
React: how do you assign default properties of object props?
例如,子组件通过position={{x: 50}}
。如何在子组件内重新分配this.props.position
以等于{{x: 50, y: 0}}
看起来你在使用React;如果你也在使用ES2016,你将能够使用Object.assign:
var initial = {x: 0, y: 0};
var passed = {x: 50};
var result = Object.assign({}, initial, passed);
console.log(result); // { x: 50, y: 0 }
如果你只是做了this.props.position
,你就不能依靠默认的道具来工作,因为默认的道具不会检查对象上缺失的特定属性,而是会检查道具是否存在。
最简单的方法是使用两个道具:positionX &positionY
然后在你的子组件中,你可以设置这两个组件的默认道具,所以如果一个被传入而另一个没有,你可以回退到另一个的默认值。
getDefaultProps: function() {
return {
positionX: 50,
positionY: 0
};
},
另一种选择是检查它是否存在于子组件中使用它的位置,并在该点使用一个同时具有Y和X值的新对象来操作它。
对象解构的例子:
var {x, y=50} = this.props.position
如果你预期x在传递y时可能是未定义的,那么你也可以给x一个默认值。如果x或y在this.props.position
上存在,那么它将覆盖默认值
相关文章:
- 如何从对象的原型方法访问JavaScript对象属性
- 如何将数组项添加到对象属性中
- 设置嵌套对象属性的更好方法
- JavaScript管理具有重复属性名称的对象属性
- 如何使用element.myobj.prop等具有对象属性的元素
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 如何在AngularJS工厂中正确声明对象属性
- 如何使用object.assign()从其他对象引用基本对象属性
- 使用XPath样式访问Javascript JSON对象属性
- 将javascript对象(属性+值)合并到一个对象中
- 数组:使对象属性成为数组键
- 无法从JavaScript中的函数调用对象属性
- Google Closure Advanced |无法识别对象属性|动态属性
- Javascript从匿名函数访问外部对象属性
- 从函数更改对象属性
- 如何从字符串变量访问对象属性
- 从嵌套对象属性中获取排除某个值的最高值
- 在Aurelia computeds中,当设置依赖关系时,如何声明对对象属性的依赖关系
- 传递数量不确定的可能嵌套的对象属性