reactjs 如何使用数组作为react select组件的选项

lnvxswe2  于 2023-10-17  发布在  React
关注(0)|答案(4)|浏览(145)

如果我想替换期权

<option value="A">Apple</option>
<option value="B">Banana</option>

在给定的例子中,通过在react jsx文件中使用数组,我将如何进行?

<select value="B">
    <option value="A">Apple</option>
    <option value="B">Banana</option>
</select>
h4cxqtbf

h4cxqtbf1#

因为它只是JavaScript,有一百万种方法。我通常采取的方法是Map容器以生成内脏。一个for循环或其他什么也可以很好地工作。

const Answer = react.createClass({

    render: function() {

        var Data     = ['this', 'example', 'isnt', 'funny'],
            MakeItem = function(X) {
                return <option>{X}</option>;
            };

        return <select>{Data.map(MakeItem)}</select>;

    }

};

或者在ES6中,在更现代的React中,

const Answer = props => 
  <select>{
    props.data.map( (x,y) => 
      <option key={y}>{x}</option> )
  }</select>;
dw1jzc5e

dw1jzc5e2#

你通常需要提供一个唯一的密钥来确保React可以识别项目,你可以使用uuid来完成这个任务,或者你手头上的一个密钥,例如。

<Select name={field}>
    {FBButtons.map(fbb =>
      <option key={fbb.key} value={fbb.key}>{fbb.value}</option>
    )};
  </Select>
5us2dqdw

5us2dqdw3#

我来这里是为了寻找一种在服务器端渲染的React应用程序中使用数组作为选项的方法。这个公认的答案帮助我找到了有效的方法。例如,给定一个名为data的字符串数组和一个名为selectedOpton的字符串(它等于data中的一个字符串,如data[0]

<select value={selectedOption} onChange={function(){}} >
              {data.map( (e) => <option value={e} key={e}>{e}</option> )}
            </select>

当提交表单的一部分时,我会自动获得选择的结果。由于它是服务器端呈现的,因此在发送到浏览器之后,直到提交表单之前,不会执行任何JavaScript。包含onChange={function(){}}的唯一原因是为了抑制由value={selectedOption}导致的不合逻辑的错误。React坚持认为,如果一个值被赋值,那么必须定义一个onChange,即使它是服务器端呈现的,这意味着onChange永远不会被触发。

rks48beu

rks48beu4#

您也可以将常量抽象到另一个文件中并导入它们。
import {myconstants} from "../constants";
{myconstants.map((x,y) => <option key={y}>{x}</option>)}

相关问题