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