如何在 React v0.13 中传输道具?
How to transfer props in react v0.13?
我正在尝试为我的第一个 javascript 项目学习 React,并开始创建一个非常简单的代码,将在文本框中输入的两个数字相加。键入数字时会重新呈现结果。这对我有用 react v0.11.
var App = React.createClass({
mixins: [React.addons.LinkedStateMixin],
getInitialState: function() {
return {
payment: 0,
payment2: 0
};
},
render: function() {
var total = parseInt(this.state.payment, 10) +
parseInt(this.state.payment2, 10);
return (
<div>
<Payment {...this.props} valueLink={this.linkState('payment')}/><span>+</span>
<Payment {...this.props} valueLink={this.linkState('payment2')}/><span>=</span>
{ total }
</div>
);
}
});
var Payment = React.createClass({
render: function() {
return this.transferPropsTo(
<input type="text" />
);
}
});
React.render(
<App />,
document.getElementById('app')
);
但是,似乎在 v0.13 中删除了 transferPropsTo() 函数。我如何在最新版本中执行等效操作。
你可以在输入标签里传{...this.props}
:
var Payment = React.createClass({
render: function() {
return (
<input type="text" {...this.props} />
);
}
});
这使用了 JSX spread attributes 功能。
我正在尝试为我的第一个 javascript 项目学习 React,并开始创建一个非常简单的代码,将在文本框中输入的两个数字相加。键入数字时会重新呈现结果。这对我有用 react v0.11.
var App = React.createClass({
mixins: [React.addons.LinkedStateMixin],
getInitialState: function() {
return {
payment: 0,
payment2: 0
};
},
render: function() {
var total = parseInt(this.state.payment, 10) +
parseInt(this.state.payment2, 10);
return (
<div>
<Payment {...this.props} valueLink={this.linkState('payment')}/><span>+</span>
<Payment {...this.props} valueLink={this.linkState('payment2')}/><span>=</span>
{ total }
</div>
);
}
});
var Payment = React.createClass({
render: function() {
return this.transferPropsTo(
<input type="text" />
);
}
});
React.render(
<App />,
document.getElementById('app')
);
但是,似乎在 v0.13 中删除了 transferPropsTo() 函数。我如何在最新版本中执行等效操作。
你可以在输入标签里传{...this.props}
:
var Payment = React.createClass({
render: function() {
return (
<input type="text" {...this.props} />
);
}
});
这使用了 JSX spread attributes 功能。