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

问题描述 投票:0回答:1

我正在传递一个函数来处理模式窗口组件的状态,从父组件到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组件,似乎被定义为一个函数,但调用它会引发错误。

我在这里错过了什么?

javascript reactjs react-props
1个回答
2
投票

你的构造函数没有绑定到this的道具。只需使用props参数来访问构造函数中的props。

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

}

© www.soinside.com 2019 - 2024. All rights reserved.