如何在表单中正确显示值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在表单中正确显示值?相关的知识,希望对你有一定的参考价值。

我正在尝试从我所处的状态中生成一个from:

const { id } = this.props.match.params;
const formGen = this.state.arr.map(arr => {
  if (id == arr.id) {
    const inner = this.state.arr.input.map(inputs => (
      <div>
        <h1>{arr.name}</h1>
        <label>{inputs.inputLabel}</label>
        <input value={inputs.inputValue} type={inputs.inputType} />
      </div>
    ));
  }
});

现在,我不知道如何让它显示在渲染选项卡中,因为我在变量中有一个变量:

<form />
        {formGen.inner}
      </div>

这是我想要映射的状态

 arr: [
      {
        id: 1,
        name: 'firstForm',
        input: [
          {
            inputLabel: 'wowLabel',
            inputType: 'wowType',
            inputValue: 'wowValue'
          },
          {
            inputLabel: 'wowLabel2',
            inputType: 'wowType2',
            inputValue: 'wowValue2'
          }
        ]
      }
答案

您可以返回它,而不是将响应存储在变量中,否则返回undefined,然后过滤掉响应。

const { id } = this.props.match.params;
const formGen = this.state.arr.map(arr => {
  if (id == arr.id) {
    return this.state.arr.input.map(inputs => (
      <div>
        <h1>{arr.name}</h1>
        <label>{inputs.inputLabel}</label>
        <input value={inputs.inputValue} type={inputs.inputType} />
      </div>
    ));
  }
  return;
}).filter(Boolean);

在此之后,你可以渲染它

 <form />
    {formGen}
  </div>
另一答案

const { id } = this.props.match.params;

// replace the first map with a find
const arr = this.state.arr.find(a => a.id == id);

// if arr is defined
if(arr){
    const inner = arr.input.map(inputs => (
      <div>
        <h1>{arr.name}</h1>
        <label>{inputs.inputLabel}</label>
        <input value={inputs.inputValue} type={inputs.inputType} />
      </div>
    ));

} else {
  // indicate to the user the that id was not found and what to do to fix the problem
}

以上是关于如何在表单中正确显示值?的主要内容,如果未能解决你的问题,请参考以下文章

在 Arraylist 的 listview 的 listitem 上显示值

Laravel 7 - 如何正确显示旧输入/s?

如何将列表视图中的数据从一个片段发送到另一个片段

如何在表单字段中捕获 flagstrap 选择值?

Laravel:如何在控制器的几种方法中重用代码片段

如何将微调器的值放入不同的片段中?