Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
Reactjs 从子组件获取值_Reactjs - Fatal编程技术网

Reactjs 从子组件获取值

Reactjs 从子组件获取值,reactjs,Reactjs,我是一个新的反应,需要一些帮助,以我的具体情况。我有一个顶级app.js,可以在其中渲染 export default class Page extends React.Component { constructor(props) { super(props); this.state = { currentGuess: '', historicGuess: '', result: '' }; } handleC

我是一个新的反应,需要一些帮助,以我的具体情况。我有一个顶级app.js,可以在其中渲染

export default class Page extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
        currentGuess: '',
        historicGuess: '',
        result: ''
    };
  }

  handleCurrentGuess(event) {
    console.log(event)
    this.setState({currentGuess: event.target.value})
  }

  handleSend() {
    console.log(this.state.currentGuess)
  }

  render() {
    return (
        <div className="wrapper">
            <Header />
            <Logic handleCurrentGuess={this.handleCurrentGuess}/>
            <Result />
        </div>
    )
  }
}
导出默认类页面扩展React.Component{
建造师(道具){
超级(道具);
此.state={
当前猜测:“”,
历史原因:'',
结果:“”
};
}
handleCurrentGuess(事件){
console.log(事件)
this.setState({currentGuess:event.target.value})
}
handleSend(){
console.log(this.state.currentGuess)
}
render(){
返回(
)
}
}
组件必须是有状态的,我将currentGuess值输入状态

如下所示:

export default function Logic(props) {
  console.log(props)
  return (
    <div className="logic">
        <form>
            <input type="text" onChange={props.handleCurrentGuess}/>
            <button onClick={(e) => {
                e.preventDefault()
                props.handleSend
            }}>Send</button>
        </form>
    </div>
  )
}
导出默认功能逻辑(props){
控制台日志(道具)
返回(
{
e、 预防默认值()
扶手道具
}}>发送
)
}
现在的问题是,我找不到关于如何将函数传递给和从输入中获取返回值的文档。大多数文档直接通过输入显示onChange,但我只想在有人单击submit按钮(或点击enter)时获取值。所以


如何将正确的函数传递给子级,以及如何在逻辑组件内的按钮按下时返回文本值?

如果您想
控制台。记录当前状态(显然出于测试目的),下面是代码的两个问题

首先,您没有将
handleSend
函数作为道具传递给
Logic
组件。 其次,在按钮上,您没有在onClick处理程序中调用这个
handleSend
函数

下面是一个工作示例

const Logic=props=>(
发送
);
类页扩展了React.Component{
状态={
当前猜测:“”,
历史原因:'',
结果:“”
};
handleCurrentGuess=事件=>
this.setState({currentGuess:event.target.value})
手柄端=(e)=>{
e、 预防默认值();
console.log(this.state.currentGuess)
}
render(){
返回(
)
}
}
render(,document.getElementById(“根”))


只是想更好地了解你。那么,您希望值仅通过单击子项右侧的按钮传递给父项?然后,您可以在子级中定义一个状态,在处理输入后,您可以将值传回。但是,这是没有必要的,你的逻辑现在是这样的。你为什么需要这样的东西?你可以使用回调,通过道具传递给你的子组件,将状态传递给父组件。用户在输入中输入一个数字,当他们单击按钮时,我需要通过说“top-level”来传递给顶级组件中状态的输入值组件您是指呈现
页面
的不同组件吗?@devserkan否,顶级组件指的是第1行中的
类页面