我有问题。我在React Native中具有以下功能。
const HandleConfirmApplication = async (
opts: {
isInvite: boolean,
confirmationCheckValues: () => any,
confirmPopUp: () => any,
loadingApply: () => any,
decision: () => any,
updateState: () => any
}
) => {
const {
isInvite,
confirmationCheckValues,
confirmPopUp,
loadingApply,
decision,
updateState
} = opts; //then do stuff
当我尝试调用它时,我会这样称呼它:
onConfirm={async () =>
HandleConfirmApplication({
opts.isInvite: true,
opts.confirmationCheckValues: this.props.confirmationCheckValues,
opts.confirmPopUp: this.props.onToggleConfirmPopUp,
opts.loadingApply: this.props.onToggleLoadingApply,
opts.decision: this.handleShiftInviteDecision('ACCEPT'),
opts.updateState: null
})
}
如果我删除对象并正常调用它们,它将起作用,但是,当我尝试更新对象时,我可以使函数参数成为对象,这会在每一行上引发错误,提示意外的标记',' expected ','
答案 0 :(得分:0)
在属性名称中包含.
在JavaScript中无效:
console.log({
opts.isInvite: 'example'
})
您应该自己传递参数:
HandleConfirmApplication({
isInvite: ...,
// ... rest of params
})
请注意,从技术上讲,如果将属性.
括在引号中,则可以在其中使用console.log({
'opts.isInvite': 'this is fine'
})
,但这将使您在特定代码中的行为不正确,因为您没有使用该格式声明任何属性。
filter