我正在学习通过教程在父组件和子组件之间传递数据。我仔细检查了我的代码,仍然没有找出错误。
我的index.js
import React, {Component} from 'react';
import ReactDom from 'react-dom';
import {Header} from './components/Header';
import {Home} from './components/Home';
class App extends Component {
constructor(){
super();
this.state ={
HomeLink:"home"
};
}
onGreet(){
alert("hello");
}
onChangeLinkName(newName){
this.setState({
HomeLink:newName
});
}
render(){
return (
<div className="container">
<div className="row">
<div className="col-xs-10 col-xs-offset-1">
<Header HomeLink={this.state.HomeLink} />
</div>
</div>
<div className="row">
<div className="col-xs-10 col-xs-offset-1">
<Home
name={"max"}
initialAge={27}
greet={this.onGreet}>
changeLink={this.onChangeLinkName.bind(this)}
<p>This is a paragraph passed from props</p>
</Home>
</div>
</div>
</div>
);
}
}
ReactDom.render(
<App/>, window.document.getElementById("root")
);
Home.js
按钮更改链接onClick事件正在调用changeLink函数,该函数将新链接传递给props。
import React from 'react';
export class Home extends React.Component {
constructor(props){
super();
this.state = {
age:props.initialAge,
status:0,
homeLink:"changed link"
};
setTimeout(() => {
this.setState({
status:1
});
},3000);
}
onMakeOlder(){
this.setState({
age:this.state.age+3
});
}
onChangeLink(){
this.props.changeLink(this.state.homeLink);
}
render(){
return(
<div>
<p>In a new Component</p>
<p>Your name is {this.props.name} and your age is {this.state.age}</p>
<p>{this.state.status}</p>
<hr/>
<button onClick={()=> this.onMakeOlder()}>make me older</button>
<hr/>
<button onClick={this.props.greet}>greet</button>
<hr/>
<button onClick={this.onChangeLink.bind(this)}>change link</button>
</div>
);
}
}
Home.propTypes = {
name:React.PropTypes.string,
age:React.PropTypes.number,
user:React.PropTypes.object,
children: React.PropTypes.element.isRequired,
greet:React.PropTypes.func,
changeLink:React.PropTypes.func
};
错误:-
Uncaught TypeError: this.props.changeLink is not a function
将要传递的道具切换到:
changeLink={this.onChangeLinkName}
在父构造函数中:
this.onChangeLinkName=this.onChangeLinkName.bind(this)
最后,在按钮调用中:
代码中有一个输入错误。
<Home
name={"max"}
initialAge={27}
greet={this.onGreet}>
changeLink={this.onChangeLinkName.bind(this)}
<p>This is a paragraph passed from props</p>
</Home>
请注意,在使用以下字符设置属性greet
之后,如何关闭Home
组件:
这将修正你的错误,你应该能够前进。
本文向大家介绍react 父组件与子组件之间的值传递的方法,包括了react 父组件与子组件之间的值传递的方法的使用技巧和注意事项,需要的朋友参考一下 概念上,组件是封闭的环境。React中是单向数据流的设计,也就是是说只有父组件传递资料给子组件这回事。以正确的技术说明,拥有者组件可以设置被拥有者组件中的数据。 那么子组件要如何与父组件沟通这件事,简单的来说,是一种迂回的作法,在父组件中设置了一个
问题内容: 我正在尝试将数据从子组件发送到其父组件,如下所示: 这是子组件: 我需要的是由用户在父组件中获取选定的值。我收到此错误: 谁能帮我发现问题? PS子组件正在从json文件创建一个下拉列表,并且我需要该下拉列表来显示json数组的两个元素彼此相邻(例如:“ aaa,english”是首选!) 问题答案: 这应该工作。在发送回道具时,您将其作为对象发送,而不是作为值发送,或者将其用作父组件
我有两个组件,一个是子组件,另一个是父组件。我正在有条件地撕裂我的子组件。这段代码的功能就是当你们点击按钮时,定时器将显示,当你们点击停止定时器将停止。这里“Timer”是子组件,我在“Timer”组件中使用了state属性,我想在单击“stop Timer button”之前显示Timer的值。那么如何将“timer”状态变量值从子组件传递到父组件呢。 这是父组件,下面的代码用于“计时器”组件。
问题内容: 我有一个调用会弹出一个的,以便用户可以选择目录。这些都是单独的类。从中传递值的正确方法是什么,以便我可以在中显示目录的路径? 编辑:更新了问题。 问题答案: 这是一个不完整的示例,但我想可以使您了解如何实现所需的目标。重要的一点是引用要在其中进行选择的属性,例如 参见下面如何将其放置在代码中: 希望对您有所帮助,对不起您没有提供完整的示例。 编辑 本质上,我们没有将任何参数传递给Abs
问题内容: 在React中,我有类似的文件 parent.js 包含文本框和按钮 child.js 包含P标签 App.js 包含父组件和子组件 问题 将“父级”上的“文本框”值传递给子级,并将其显示在子级标记中。 完整代码 堆叠 问题答案: 更新了示例以将数据传递给子组件。 https://stackblitz.com/edit/react- trmj9i?file=child.js 在下面添加
子组件事件能否到传递父组件