javascript - 保存状态中的Div内容
问题描述
我正在创建餐厅菜单。单击列表的每个菜单项时,我都会出现一个模式。此逻辑使用 innerHtml 并将列表内容粘贴到模式中。
现在我想在模式中单击“确定”时将这个 div 的内容单独保存在菜单组件的状态下。例如,在第一个项目列表模式中,我有 Egg Drop、$2 和数字输入。我喜欢在 Selected_Menu 对象的 MenuItem 和 Price 属性中保存 Egg Drop 和 $2。如果您能告诉如何将数字输入值保存到数量,它也会更有帮助。
Selected_Menu:{
MenuItem:null,
Price:null,
Quantity:null,
TotalPrice:null
}
解决方案
首先要做的是将一个函数传入模态以更新菜单的状态。
<NumericInput
onChange={value => this.setState({ [item]: value })}
/* -- snip -- *//
/>
这将在值更改时更新每个项目的菜单状态中的计数。如果您希望仅在用户单击“确定”时应用此值,那么您将需要处理模式内部的状态,并且仅在单击“确定”时更新父(菜单)状态。看起来像这样:
<NumericInput
onChange={value => this.setState({ count: value })}
/* -- snip -- *//
/>
/* -- snip -- */
<button onClick={() => this.props.setMenuItemCount(this.state.count)>
Ok
</button>
因此,要采用第二种方式,您需要为接收道具的模式创建一个新组件:setMenuItemCount。哪里setMenuItemCount
看起来像这样:
setMenuItemCount={count => this.setState({ [item]: count })}
然后你把这个新组件放在这里:
<Modal.Body>
<YourComponent setMenuItemCount={count => this.setState({ [item]: count })}/>
</Modal.Body
推荐阅读
- typescript - 如何在 TypeScript 中动态设置 MaterialUI 网格大小道具的值?
- python - 如何获取由 subprocess.run 启动的进程的 pid 并杀死它
- salesforce - “更新插入的字段无效,必须是外部 ID 自定义或标准索引字段:名称”错误
- python-3.x - Python:类型继承而不重载同名方法?
- python - 范围函数在创建 ndarray 时如何工作?
- html - 单击以进行 Web 开发后,如何在显示之前等待图像和段落
- android - 夜间模式需要sqlite吗?
- c++ - 错误地在 C++ 中声明数组,如数组 [1-00],但代码仍然有效,输出不正确?
- reactjs - 如何使用 react-moment 为语言环境设置日期?
- ember.js - EmberJS 在 application.hbs 中显示路由器模型