Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用单行作为道具传递状态_Javascript_Reactjs - Fatal编程技术网

Javascript 使用单行作为道具传递状态

Javascript 使用单行作为道具传递状态,javascript,reactjs,Javascript,Reactjs,下面的代码不工作,它有错误,只是好奇如何显示另一个组件,如模态 showModal(){ this.setState({preview:true}) <Modal show={this.state.preview} /> } showmodel(){ this.setState({preview:true}) } 我觉得将预览设置为true,然后将其传递给show prop是多余的。由于我在模态组件中声明了defaultProps,因此显示默认为false,我怀疑

下面的代码不工作,它有错误,只是好奇如何显示另一个组件,如模态

showModal(){
    this.setState({preview:true})
    <Modal show={this.state.preview} />
}
showmodel(){
this.setState({preview:true})
}
我觉得将
预览设置为true,然后将其传递给show prop是多余的。由于我在模态组件中声明了defaultProps,因此显示默认为false,我怀疑是否仍需要在将调用模态组件的initialState中将状态
预览
设置为false,您必须返回要呈现的Babel/HTML组件。这可以通过以下方式实现:

return (
   <Modal show={this.state.preview} />
);
返回(
);
通常,当您想要呈现某个内容时(即,在事件发生后,单击按钮等),您构造代码的方式是设置发生时的状态,然后在呈现
组件的主体中,在其中放入if条件以检查状态。e、 g:

showModal = () => {
    if(this.state.preview) {
        return (
            <Modal />
        );
    } else {
        return null;
    }
}

render() {
    return (
        <SampleComponent />
        { this.showModal() }
    );
}
showmodel=()=>{
if(this.state.preview){
返回(
);
}否则{
返回null;
}
}
render(){
返回(
{this.showModal()}
);
}

您尝试不将控制可见性的状态传递给这样的组件。您可以控制父组件中组件的可见性。

确切的错误是什么?我觉得如果在
render()
中调用该方法,还需要
返回