javascript - 如何使 react 处理程序为多个值工作?

标签 javascript reactjs material-ui

我有一个处理程序不能完全按照我的意愿工作...我需要能够更改许多项目的“数量”值。现在,对于我的处理程序,如果我尝试使用多个项目,它们将更新为最后输入的值。所以我必须有一种方法可以输入多个值并以不同方式更新项目。这是我到目前为止所做的:

this.state.purchase.selected.map(item => {
                                    return (
                                        <Grid item xs={4}>
                                            <OrderItemsCard
                                                item={item}
                                                onChange={this.handleSelectedItemChange}
                                            />
                                        </Grid>
                                    )
                                })
      
        this.handleSelectedItemChange = this.handleSelectedItemChange.bind(this) 
 
 handleSelectedItemChange(event) {
        let query = Object.assign({}, this.state.purchase);
        query.selected.map(item => {
            item.quantity = event.target.value
        })
        this.setState({purchase: query})
    }

最佳答案

如果我理解正确的话,您想要一种方法来与多个组件共享您的 onChange 函数,设计一种方法来区分调用者。

您可以简单地将您的 item 传递给 onChange 并使用它的值来确定调用者并执行您希望的任何操作。

这可以按如下方式完成,

this.state.purchase.selected.map(item => {
  return ( 
    <Grid item xs={4}>
      <OrderItemsCard 
        item={item}
        onChange={(event) => this.handleSelectedItemChange(item, event)}
      />
    </Grid>
  );
})

handleSelectedItemChange(item, event) {
    // ...
}

关于javascript - 如何使 react 处理程序为多个值工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52580665/

相关文章:

enums - 为什么 Flux 架构示例使用常量作为操作类型而不是字符串?

javascript - 如何在 React 中使用多个 Material 的 ui 对话框?

reactjs - 使用 Material-ui 组件响应客户端验证

javascript - $在纯Javascript中是什么意思

javascript - react-cookie 无法设置过期或 maxAge

javascript - 在 Polymer 3 中切换 Div

JavaScript : filter array of object remove all objects

npm - ERESOLVE 无法解析依赖树 - 对于 @mui/material

javascript - 有没有办法在 switch 中使用 OR ?

javascript - Express.js CRUD – Chrome 中的 DELETE 后 GET 挂起