我需要的是:一种通过名称访问变形(或扩展?)参数的方法。
我的代码如下:
open = ({ title = "Confirm", subTitle, link = {} } = {}) => {
this.setState({ isVisible: true, ...params?? });
}
因此,基本上我收到的是一个具有属性a,b,c
的对象,该对象具有属性a,c
的默认值。
此后,我想将接收到的对象传播到我的状态(或出于其他任何目的)。但是..我不知道要传播什么。
因此,假设我正尝试像示例中那样将其命名为params
。
我尝试过的事情:
open = (params : { title = "Confirm", subTitle, link = {} } = {}) => {
^ Unexpected token error
open = ({ title = "Confirm", subTitle, link = {} } = {} : params) => {
^ , expected
this.setState({ isVisible: true, ...arguments });
(尝试访问ES5 arguments
对象)
^'arguments' is not allowed in class field initializer' error
有什么办法可以做到这一点?
答案 0 :(得分:0)
解构后没有可以传播的对象。 (嗯,有arguments[0]
,但这是实际参数,而不是包含参数默认值的新对象。)
您将要显式地使用所有已分解为新对象的变量:
function open({title = "Confirm", subTitle, link = {}} = {}) {
this.setState({ isVisible: true, title, subTitle, link });
}