Javascript 我的子组件执行验证,但我需要在更高的组件中使用该验证

Javascript 我的子组件执行验证,但我需要在更高的组件中使用该验证,javascript,forms,validation,reactjs,Javascript,Forms,Validation,Reactjs,我有一个表单,允许用户填写并选择一些选项 可能看起来像 <MyForm> <InputWithValidation /> </MyForm> 但是,这不起作用,因为我从未对输入调用过验证。对于一个输入和多个输入,如何解决此问题?虽然这类似于表单验证,但我认为热键增加了一点复杂性 我觉得我的问题和这个问题很相似,但我希望有人能用一些最佳实践来回答这种情况 谢谢你的帮助 由于您的类已经可以访问此.props.submit()的适当上下文,因此我建议将该事

我有一个表单,允许用户填写并选择一些选项

可能看起来像

<MyForm>
    <InputWithValidation />
</MyForm>
但是,这不起作用,因为我从未对输入调用过验证。对于一个输入和多个输入,如何解决此问题?虽然这类似于表单验证,但我认为热键增加了一点复杂性

我觉得我的问题和这个问题很相似,但我希望有人能用一些最佳实践来回答这种情况

谢谢你的帮助

由于您的
类已经可以访问此.props.submit()的适当上下文,因此我建议将该事件处理程序移动到您的
类。您可以像这样在组件装载后添加它

class InputWithValidation extends React.Component {
    //constructor

    //other functions

    componentDidMount() {
        //add keydown event handler here
            //pass to parent with this.props.submit(e.whatever)
    }

    render() {
        //render function
    }
}

“现在我设置的方式是MyForm有一个函数,
submit()
,我将它作为道具传递给我的
InputWithValidation
。单击submit,
InputWithValidation
检查它的输入,如果它有效,将调用
this.props.submit
”所有这些都没有反映在你问题的代码中。甚至连提交按钮都没有。请编辑您的问题以包含更多实际代码,以便我们可以重现您的问题。
class InputWithValidation extends React.Component {
    //constructor

    //other functions

    componentDidMount() {
        //add keydown event handler here
            //pass to parent with this.props.submit(e.whatever)
    }

    render() {
        //render function
    }
}