当前位置: 首页 > 知识库问答 >
问题:

从ReactJS中的功能组件更改类组件的状态

郜联
2023-03-14

我目前有一个类组件和一个函数组件在我的主组件

以下是的代码段:

类组件

class ComponentForm extends Component{
    constructor(props){
        super(props);
        this.state = {
            modal: true
        }
        this.toggle = this.toggle.bind(this);
        this.handleSubmit = this.handleSubmit.bind(this);
    }
toggle() {
    this.setState({
        modal: !this.state.modal
    })
}
handleSubmit(values){
    console.log('Current State is: ' + JSON.stringify(values));
    alert('Current State is: ' + JSON.stringify(values));
}
    render(){
        return(
            <Modal isOpen={this.state.modal} toggle={this.toggle}>

               . . . .  

            </Modal>
        )
    }
}

功能部件

function RenderComments({ comments }) {
    return (
        <>
        {
            . . . .
        )}
            <div>
                <Button type="submit" value="submit"}>
                    <i className="fa fa-pencil"></i> Submit Comment</Button>
            </div>
        </>
    );
}  

因此,我想做的是通过按钮的onClick操作,从功能组件更改类组件的状态。我怎样才能完成任务?

共有2个答案

聂鹏云
2023-03-14

您可以通过props将toggle方法传递给函数组件,并将其添加到例如onhtml中,这将完成任务

贺佑运
2023-03-14

您必须传递一个函数,将状态从组件表单更新为渲染命令,作为道具,然后在按钮中使用它作为onClick

例如,您可以传递toggle()函数(如果这是您希望在子级实现的,那么在渲染命令中

function RenderComments({ comments, toggle }) {
    return (
        <>
        {
            . . . .
        )}
            <div>
                <Button type="submit" value="submit" onClick={toggle}>
                    <i className="fa fa-pencil"></i> Submit Comment</Button>
            </div>
        </>
    );
}  
 类似资料:
  • 我创建了一个包含登录组件和注册组件的签名页面组件。我的问题是,我如何传递一个onhtml函数从父到子,以便更改我的父组件(签名页组件)的状态?我期望的是,通过单击子组件中的按钮,可以切换父组件的活动状态,并根据活动状态更改样式。我试图通过一个处理功能从父到子,但它不能很好地工作。 有什么解决办法吗? codesandbox中的详细信息:https://codesandbox.io/s/wizard

  • 我正在将父组件的状态从父组件传递到子组件。在子组件中,我有一个不同的状态。我正在对子组件的状态执行一些操作,并且结果必须添加到父组件的状态。因此,在我的父组件中,我编写了一个回调函数,该函数将更新父组件的状态。代码为: 因此,这个函数随后作为道具传递给子组件: 然后在我的子组件中,我试图实现回调函数为: 但这并没有达到预期效果。这是正确的方法吗?有人能帮我吗? 我试图通过实现这里提供的解决方案来解

  • 我有两个组件:父组件,我想改变子组件的状态: 和子组件: 我需要从父组件更改子组件的打开状态,或者当单击父组件中的按钮时,从父组件调用子组件的toggleMenu()?

  • 我写这个问题是因为我想请你帮助我如何在我的功能组件上使用redux。我查看了其他使用React组件的示例,但我不理解如何在功能组件中获得“存储”值。 我的想法是用我的 百货商店getState() 在我的功能组件中检查状态并与UI交互,但我无法实现。 需要帮忙吗? 例如,功能组件: 如何在标题组件中使用“存储”对象?它在我的应用程序组件上工作,只是我不知道如何在我的组件中使用它。 我的问题是: 我

  • 我是reactjs的新手,我不知道如何从父组件中更改子组件的状态。下面是代码 每当对父组件中的执行时,我希望子组件接收。 有什么建议吗?

  • 问题内容: 我有两个组件: 父组件 ,我想从中更改子组件的状态: 和 子组件 : 我需要从父组件更改子组件的 打开 状态,还是单击父组件中的按钮时从父组件调用子组件的 toggleMenu() ? 问题答案: 状态应在父组件中进行管理。您可以通过添加属性将值传输到子组件。