Javascript 无法在react中分配新属性,获得'Can';t添加属性xxx,对象不可扩展`
我想制作一个用于提交表单的对话框组件 代码Javascript 无法在react中分配新属性,获得'Can';t添加属性xxx,对象不可扩展`,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我想制作一个用于提交表单的对话框组件 代码 类SubmitDialog扩展了React.PureComponent{ 切换对话框(){ this.setState({isOpen:!this.state.isOpen}) } handleSubmit(){ //孩子们需要有一个把手 this.props.children.props.handleSubmit() this.toggleDialog() } render(){ const{children,title}=this.props; /
类SubmitDialog扩展了React.PureComponent{
切换对话框(){
this.setState({isOpen:!this.state.isOpen})
}
handleSubmit(){
//孩子们需要有一个把手
this.props.children.props.handleSubmit()
this.toggleDialog()
}
render(){
const{children,title}=this.props;
//我想传递一个按钮来触发打开此对话框
let trigger=React.cloneElement(this.props.trigger);
trigger.onClick=this.toggleDialog;
返回(
{trigger},
{this.toggleDialog()}}
className=“对话框”
>
{title}
{儿童}
{this.toggleDialog()}}>取消
{this.handleSubmit()}}>提交
)
}
};
目的
我想通过考试
this.props.trigger
。我试图添加React.cloneElement
,但仍然不起作用
已尝试对象。密封件:
试试:
React.cloneElement(this.props.trigger, {
onClick: this.toggleDialog
});
尝试:
也许你需要使用这个.toggleDialog.bind(这个)也许你需要使用这个.toggleDialog.bind(这个)Object.seal
会很好地密封这个对象,之后就不能更改/创建它的属性了。。TypeScript知道这一点,并返回原始对象的只读
,因此为什么会出现编译时错误。如果TypeScript没有抛出此错误,则会出现运行时错误。Object.seal
将密封该对象,之后无法更改/创建该对象的属性等。。TypeScript知道这一点,并返回原始对象的只读
,因此为什么会出现编译时错误。如果TypeScript没有抛出此错误,您将得到运行时错误。
React.cloneElement(this.props.trigger, {
onClick: this.toggleDialog
});