【发布时间】:2017-02-22 08:31:51
【问题描述】:
我正在开发一个 React-Native\Redux 应用程序
- 我在渲染时预填充 a 。这很好。 2.填充后我想调用一个调度操作,以便每个的值用于执行一些计算并稍后存储:我知道它不可能在渲染期间更新状态,但是有没有我可以做到这一点?
我需要它在生成输入字段时更新状态。
我们将不胜感激。
谢谢
handleInputChange: function(product, productId, input){
let { currentSale, updateProductQuantity } = this.props;
let updatedCurrentSale = TransactionsService.updateProductQuantity(currentSale, product, productId, input);
let transaction = TransactionsService.packageTransaction(updatedCurrentSale);
updateProductQuantity(updatedCurrentSale, transaction)
},
updateProductQuantity 调用调度操作,这就是我们遇到问题的地方
handleQuantityValue: function(product, productId){
let { orderSelected } = this.props;
if(orderSelected){
var index = orderSelected.products.findIndex(x => x.product_id==productId)
}
var i = index
if( i >= 0){
var qtty = orderSelected.products[i].product_quantity
this.handleInputChange(product, productId, qtty).bind(this)
return qtty.toString()
}
else{
return ''
}
},
返回数量值
renderProducts: function(){
let { currentUser, currentSale, orderSelected } = this.props;
return _.map(currentSale.productSales, function(product, productId){
var qtty = this.handleQuantityValue(product, productId)
return <View style={Styles.questionPanel}>
<Question
product={product}
productId= {productId}
Order={ orderSelected }
quantity= { qtty }
onInputChange={this.handleInputChange}
/>
</View>
}.bind(this));
},
这会呈现产品,TextInput 会填充 quantity 值。另一个是当它呈现时,我应该(不一定)调度一个动作
render: function(){
let { currentSale } = this.props;
return (
<View style={{flex: 1}}>
<NavBar navigator={this.props.navigator} />
<ScrollView>
<Text style={[Styles.dayDisplayHeader, Styles.spacing]}>
Enter Your Sale:
</Text>
{this.renderProducts()}
<Calculator
productSales={currentSale.productSales}
totalSales={currentSale.totalSales}
/>
<Button text={'Save'} whenTapped={this.handleSubmit} />
</ScrollView>
</View>
)
【问题讨论】:
-
听起来你试图从错误的角度解决问题。您可以粘贴您的组件的代码吗?
-
我已经编辑了我的问题
标签: javascript reactjs react-native react-redux react-native-android