Reactjs 反应模式设置状态不工作 handleOpenModal() { this.setState({showModal: true}); } handleCloseModal() { this.setState({showModal: false}); }

Reactjs 反应模式设置状态不工作 handleOpenModal() { this.setState({showModal: true}); } handleCloseModal() { this.setState({showModal: false}); },reactjs,react-redux,react-modal,Reactjs,React Redux,React Modal,)) 另外,我必须提到的是,我也在使用redux在处理事件时,es6缺少一些绑定。因此,要让处理程序访问状态,只需将这些绑定放在构造函数中: export const StartComponent = (props) => ( <div className="start-page"> <div className="container"> <div className="row"> <div clas

))


另外,我必须提到的是,我也在使用
redux

在处理事件时,es6缺少一些绑定。因此,要让处理程序访问状态,只需将这些绑定放在构造函数中:

export const StartComponent = (props) => (
<div className="start-page">
    <div className="container">
        <div className="row">
            <div className="col-sm-6">
                <NavLink to="/start/klarungsfalle">Einträge prüfen</NavLink>
            </div>
            <div className="col-sm-6" >
                <NavLink onClick={props.handleModalOpen} style={{ background: "#aac4d3", cursor: "default" }} to="/">Einträge verfügen</NavLink>
            </div>
        </div>
    </div>
</div>
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
此处不需要匿名函数:

constructor() {
    super();
    this.state = {
        showModal: false
    };
    // bindings
    this.handleOpenModal = this.handleOpenModal.bind(this);
    this.handleCloseModal = this.handleCloseModal.bind(this);
}

将回调传递到setState意味着当setState完成时,它接下来将运行该函数;setState是异步的,但这对您没有帮助。为StartComponent组件提供代码可能会有所帮助,因为可能没有调用处理程序函数

 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
试试
onClick={()=>props.handleModalOpen()}


注意:只是一个建议,考虑在孩子中命名你的道具和父母的原因一样。我刚刚设置了

,看起来状态正在按照您的要求进行设置

 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
请尝试使用您的代码的以下代码段:

或者,您也可以查看此

 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
const{HashRouter,NavLink}=ReactRouterDOM;
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
常量应用=()=>( ); 常量StartComponent=({currentState,handleModalOpen,handleNix})=>(
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
埃因特拉格·普吕芬 埃因特拉格·维尔弗根
模态
状态
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
闭合模态 ); } } ReactDOM.render(,document.getElementById(“app”)
.flex{
显示器:flex;
}
.居中对齐{
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
证明内容:中心;
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
} .周围的空间{ 证明内容:周围的空间;
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
} .圆柱中心{
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
弯曲方向:立柱; 对齐项目:居中;
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
} .注{
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
字体大小:0.7em; 边缘底部:1rem; } .btn:之后{
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
内容:“\01F436”;
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}
}

必须绑定函数才能使用“this”关键字


调用
handleModeLopen={()=>this.handleOpenModal()}
时会发生什么?
console.log(“此处”)
是否正在打印某些内容?如果没有问题,那么您的
StartComponent
可能会有问题。您可以为StartComponent添加代码吗?我的猜测是,
handleModalOpen
不会从那里被调用,它自己的对象和函数都可以传递给
setState
@user2960896。上面的示例也使用了您更新的代码。我希望有帮助。试试
onClick={()=>props.handleModalOpen()}
 handleOpenModal() {
    this.setState({showModal: true});
}

handleCloseModal() {
    this.setState({showModal: false});
}