javascript - Onclick不显示表单 react

标签 javascript reactjs

当您按下编辑按钮时,我试图显示一个表单。在我的控制台中,我看到 PRESSED!!!,但表单未显示。我不需要绑定(bind),因为我使用箭头函数。即使我删除表单并放置 H1 标签,它仍然不显示。可能是什么问题?

 addForm = () => {
        const { title } = this.state;
        <form onSubmit={this.handleSubmit}>
            <label>Enter the title of the book!</label>
            <input type="text" name="title" value={title} onChange={this.handleChange} />
            <button type="submit" className="btn btn-success mr-1 mt-1">Add Book!</button>
        </form>
        console.log("PRESSED!!!")
    }


    selectButton = () => {
        if (this.props.typeButton == "CRUD") {
            return (
                <React.Fragment>
                    <button className="btn btn-success mr-1 mt-1" onClick={this.addForm}>Add</button>
                        <button className="btn btn-warning mr-1 mt-1">Edit</button>
                    <button className="btn btn-danger mr-1 mt-1">Delete</button>
                </React.Fragment>);



        }
    }

最佳答案

onClick 中的函数包含 JSX,而不是逻辑。您应该向状态添加一个 bool 值来指示是否应显示表单,并在单击时更新它。然后,有条件地显示它,就像您对 selectButton 所做的那样本身(我猜它是一个类组件,对吧?)

addForm = () => {
    const { title, showForm } = this.state;

    if (showForm) 
        return (
            <form onSubmit={this.handleSubmit}>
                <label>Enter the title of the book!</label>
                <input type="text" name="title" value={title} onChange={this.handleChange} />
                <button type="submit" className="btn btn-success mr-1 mt-1">Add Book!</button>
            </form>
        );
}


selectButton = () => {
    if (this.props.typeButton == "CRUD") {
        return (
            <React.Fragment>
                <button className="btn btn-success mr-1 mt-1" onClick={this.setState({...this.state, showForm: true})}>Add</button>
                    <button className="btn btn-warning mr-1 mt-1">Edit</button>
                <button className="btn btn-danger mr-1 mt-1">Delete</button>
            </React.Fragment>
        );
    }
}

render() {
    return (<>
        {selectButton()}
        {addForm()}
    </>);
}

顺便说一句,<></><React.Fragment></React.Fragment> 的简短语法

关于javascript - Onclick不显示表单 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104430/

相关文章:

Javascript onKeyUp

reactjs - ReactJS 中生产和开发构建的区别

javascript - 创建一个 slate.js 编辑器组件,将其状态保持在 markdown 中

reactjs - 使用 react-router-4 的路由组

node.js - React.js - 在 onclick() 事件上从签名的 S3 url 下载文件

javascript - 以编程方式关闭 Bootstrap 中的模式对话框并在提交时显示另一个页面

javascript - 如何在vue js中使用@click inside google maps infowindow触发一个函数?

javascript - 使用 react native 甲板刷卡器无法找到组件将在交互后卸载

javascript - php 在选中复选框时添加文本框不会发布

reactjs - 图像上的 React Native svg 剪辑路径不起作用