gpt4 book ai didi

javascript - React JS - 调用作为 prop 传递的函数

转载 作者:行者123 更新时间:2023-12-01 01:42:48 25 4
gpt4 key购买 nike

我正在传递一个函数来处理模式窗口组件的状态,从父组件到 React 应用程序中的子组件。

父组件

class App extends Component {

constructor() {

super();
this.state = {

'modalVisibility' : false,
'modalContent' : ""
}

this.handleModal = this.handleModal.bind(this);
}

handleModal(visibility, content, innerClass){

this.setState({
modalVisibility: visibility,
modalContent: content ? content : null,
modalClass: innerClass ? innerClass : null
});
}

render() {

return (

<div>

<Modal show={this.state.modalVisibility} content={this.state.modalContent} />

<Content modal={this.handleModal} />

</div>
)
}
}

子组件

class Content extends Component {

constructor(props) {

super(props);

console.log(this.props.modal); // Object { modal: handleModal() }
this.props.modal(true,"hello modal"); // TypeError: _this.props.modal is not a function
}
}

函数handleModal()看起来已成功传递给Content组件,并且似乎被定义为函数,但调用它会引发错误。

我在这里缺少什么?

最佳答案

您的构造函数没有绑定(bind)到 this 的 props。使用 props 参数来访问构造函数中的 props。

constructor(props) {
super(props);
console.log(props.modal);
props.modal(true, 'hello modal');
}

关于javascript - React JS - 调用作为 prop 传递的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52264116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com