循环中的ReactJs /语义UI复选框

旅游旅行

checkbox通过json数据渲染一些map

Data.FacData.map((v, i) => (
  <div key={i} className="CheckBox">
    <input
      type="checkbox"
      name="Facilities"
      value={v.id}
      onChange={this.getFacilities}
      id={"Facilities-"+v.id}
      />
    <label htmlFor={"Facilities-" + v.id}>{v.name}</label>
  </div>
))

JSFiddle

它工作正常,您可以选择任何chekcbox并将其作为数组添加到控制台日志中(我以某种方式处理并将其保存到数据库中),但是现在我想从数据库(api)获取之前选择的用户,我得到了此数据(目的)

facilities: "1,3"

这意味着用户选择复选框13,我想使复选框选中,我想有什么用defaultChecked属性,但它选择所有复选框不仅1,3,任何解决方案?

JSFiddle

阿维纳什

像这样更新代码或参考https://jsfiddle.net/L7y2m8zr/17/,您需要使用split将值字符串转换为数组

componentDidMount() {
  /*get data from api*/
  const data = "1,3"
  const newValues = data.split(",").map(n => parseInt(n))
  this.setState({
    facilitiesValue: newValues
  });
}

您还可以基于数组是否包含给定的id来设置defaultChecked或checked值,而不是仅传递数组或字符串(因为这是代码,而不是魔术:))

return (
    <div>
    {
        Data.FacData.map((v, i) => (
        <div key={i} className="CheckBox">
             <input
             type="checkbox"
             name="Facilities"
             value={v.id}
             onChange={this.getFacilities}
             id={"Facilities-"+v.id}
             checked = {this.state.facilitiesValue.includes(parseInt(v.id))} 
            />
             <label htmlFor={"Facilities-" + v.id}>{v.name}</label>
        </div>
        ))
     }
    </div>
)

还更新onchange处理程序,以更新状态

getFacilities = (e) => {
  const checked = this.state.facilitiesValue;
  let index;

  if (e.target.checked) {
    checked.push(parseInt(e.target.value))
  } else {
    index = checked.indexOf(parseInt(e.target.value))
    checked.splice(index, 1)
  }
  console.log(checked)
  this.setState({
    facilitiesValue: [...checked]
  })
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在Material UI中选中循环中的复选框

来自分类Dev

while循环中复选框的HTML表单数据

来自分类Dev

Laravel中foreach循环中的复选框

来自分类Dev

for循环中if语句中的复选框反向工作

来自分类Dev

在for循环中将ID关联到复选框

来自分类Dev

无法在while循环中选择多个复选框

来自分类Dev

如何使用 tkinter 在循环中创建多个复选框

来自分类Dev

BOOTSTRAP循环复选框

来自分类Dev

jQuery 循环复选框

来自分类Dev

在语义UI中获取Toggle复选框的价值

来自分类Dev

在语义UI中获取Toggle复选框的价值

来自分类Dev

语义 UI 反应复选框状态不起作用

来自分类Dev

循环打印时,切换对于材料ui复选框不起作用

来自分类Dev

ReactJS:状态中的动态复选框

来自分类Dev

Reactjs-控制多个复选框

来自分类Dev

ReactJS-托管复选框组

来自分类Dev

选择或取消选择复选框-ReactJS

来自分类Dev

如何选择多个复选框reactjs?

来自分类Dev

复选框更新请求,ReactJS

来自分类Dev

按复选框过滤问题[reactjs]

来自分类Dev

复选框未选中reactjs

来自分类Dev

reactjs 限制选中的复选框数量

来自分类Dev

ReactJs - checkall 上的复选框问题

来自分类Dev

PHP从循环检查复选框

来自分类Dev

关于循环复选框的Javascript

来自分类Dev

循环浏览javascript中的复选框

来自分类Dev

HTA VBScript循环复选框

来自分类Dev

循环浏览未隐藏的复选框

来自分类Dev

PHP从循环检查复选框