gpt4 book ai didi

javascript - React - 将变量传递给另一个组件

转载 作者:行者123 更新时间:2023-12-03 08:13:12 25 4
gpt4 key购买 nike

我尝试设置的组件具有父子关系。我想让父级保留交易(React 组件)原始状态的知识,然后根据交易是否小于原始金额来确定是否允许添加新交易。我不知道如何在单击调用时正确地将数据从一个组件传递到另一个组件。下面列出了我的原始组件。请发送帮助!

```

    var transaction = React.createClass({
getInitialState: function(){
return {
transactions: [ { desc: '', val: 0 } ],
initialTransaction: 10
}
},
render: function(){
return (
<div>
{ this.state.transactions.map(this.renderChild) }
<button onClick={ this.newTransaction }>Add</button>
</div>
)
},
shouldComponentUpdate: function(nextProps, nextState) {
console.log(nextState.transactions);
return nextState.transactions.reduce(function(a, b) {
return { val: a.val + b.val}
}) == this.state.initialTransaction
},
newTransaction: function(_transaction,x,y){
this.state.transactions.push(_transaction);

this.setState({
transactions: this.state.transactions
});
this.forceUpdate();
},
renderChild: function(_transaction){
return (
<div>
<input type='text' defaultValue={ _transaction.desc } />
<input type='text' defaultValue={ _transaction.val }/>
// TODO: this button should pass a transaction up to the parent component
</div>
);
}
});
React.renderComponent(<transaction />, document.getElementById('mount-point'));

```

最佳答案

您可以传递回调。

在父级中:

onTransaction: function(transaction) {
console.log('onTransaction', transaction);
}

并将其传递给子元素:

<Transaction onTransaction={this.onTransaction} ... />

在子进程中,您可以通过 this.props.onTransaction 调用此方法:

renderChild: function(_transaction) {
...
<button onClick={() => this.props.onTransaction(_transaction)} />

关于javascript - React - 将变量传递给另一个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com