下面是我试用过的一小段代码:
var CommentBox = React.createClass({
loadCommentsFromServer: function () {
$.ajax({
url: this.props.url,
dataType: 'json',
type: 'GET',
success: function (data) {
this.setState({data: data});
}.bind(this),
error: function (xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this),
cache: false
});
},
getInitialState: function () {
return {data: []};
},
componentDidMount: function () {
this.loadCommentsFromServer();
},
render: function () {
return (
<div className="commentBox">
<MessageBox1 data={this.state.data}/>
</div>
);
}
});
var MessageBox1 = React.createClass({
getInitialState: function() {
alert('MessageBox1 getInitialState');
return {nameWithQualifier: 'Mr. ' + this.props.data.pageName};
},
componentDidMount: function() {
alert('this.props.data: ' + this.props.data);
},
render: function() {
return (<div>
<div>{this.state.nameWithQualifier}</div>
<div> {this.props.data.pageName}</div>
</div>
);
}
});
ReactDOM.render(<CommentBox url="/save/6"/>, document.getElementById('content'));
在CommentBox中,我查询一个ID为6的对象,并将其传递给MessageBox1组件。我想让这个对象成为MessageBox1组件中的状态变量。这里的问题是,我无法读取props变量。“this.props.data”在MessageBox1组件的getInitialState和ComponentDidMount中未定义。然而,在render函数中,我可以看到正确的值。我尝试过几个能够读取GetInitialState中的props数据的示例。为什么这里没有发生这种事?请帮忙。我在控制台没有任何错误。
我相信您对react组件的生命周期有些困惑。
我建议快速阅读本文,以了解何时调用每个生命周期方法。http://busypeoples.github.io/post/react-component-lifecycle/
在getInitialState方法的messagebox1中,像这样初始化状态结构,以防止在道具可用之前访问它们。
{ nameWithQualifier: '' }
componentWillReceiveProps(newProps) {
this.setState({ nameWithQualifier: 'Mr. ' + newProps.data.pageName })
}
componentWillMount() {
this.setState({ nameWithQualifier: 'Mr. ' + this.props.data.pageName })
}
所以如果你真的想这么做,我推荐上面的2个建议
然而,在大多数情况下,用它的道具设置组件状态似乎没有必要。也许可以试试这样的方法:
render: function () {
return (
<div className="commentBox">
<MessageBox1 pageName={this.state.data.pageName}/>
</div>
);
}
render: function() {
return (<div>
<div>{'Mr. ' + this.props.pageName}</div>
<div> {this.props.pageName}</div>
</div>
);
}
本文向大家介绍vue中子组件的methods中获取到props中的值方法,包括了vue中子组件的methods中获取到props中的值方法的使用技巧和注意事项,需要的朋友参考一下 父子组件通信 这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 例如: 父组件中 子组件中 这种情况下,子组件的methods中想要取到props中的值,直接使用this.char
问题内容: 因此,我已经进行了一段时间的尝试,并认为最好重构我的代码,以便将状态设置为对象数组。我想做的是单击按钮时增加一个数字。 我在组件中有一个回调函数,可触发一个函数来更新状态…但是,我很难将对象内的键值作为目标。 我的初始状态如下: 我正在尝试锁定键,但不知道如何操作。我的函数传递了一个键,以便可以将数组中的索引作为目标,但是当我尝试执行以下操作时:由于意外的令牌,它会引发错误。 我曾尝试
所以我在这方面做了一段时间,觉得最好重构我的代码,以便将状态设置为一个对象数组。我要做的是增加一个点击按钮的数字。 我在这里尝试过类似于这个线程的东西,但是我不断得到错误。 我可以编写什么样的函数来设置我想要目标的对象中的键的状态?
问题内容: 我试图通过对象属性(此示例的名称)并在函数的轻松循环中列出它们。我发现这样做有些尴尬,但这似乎不正确。 这是我得到的: 有一个更好的方法吗?我只需要一个循环即可遍历对象数组,列出所需的属性并创建许多html节点之一。 问题答案: 您可以简单地在数组上 映射
在我的main(一个名为VehicleDriverClass的seperate类)中,我试图使用I/O将车辆数据写入文件,并从文件中读取车辆数据。我可以写一个文件罚款。我正在使用记事本和一个。txt文件来读取。我遇到的问题是,当从文件中读取时,如何终止一行的结尾。这里是Vehicle类的构造函数,所以您知道Paramaters。 这就是我目前的输入法(不试图创建oject,只是从文件中读取)。传递
我需要在ReactJS中从父组件调用子组件方法。我试过使用裁判,但不能做到这一点。有没有人能提出任何解决方案。多谢了。