如果我想替换期权
<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>
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>;
dw1jzc5e2#
你通常需要提供一个唯一的密钥来确保React可以识别项目,你可以使用uuid来完成这个任务,或者你手头上的一个密钥,例如。
<Select name={field}> {FBButtons.map(fbb => <option key={fbb.key} value={fbb.key}>{fbb.value}</option> )}; </Select>
5us2dqdw3#
我来这里是为了寻找一种在服务器端渲染的React应用程序中使用数组作为选项的方法。这个公认的答案帮助我找到了有效的方法。例如,给定一个名为data的字符串数组和一个名为selectedOpton的字符串(它等于data中的一个字符串,如data[0]:
data
selectedOpton
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永远不会被触发。
onChange={function(){}}
value={selectedOption}
rks48beu4#
您也可以将常量抽象到另一个文件中并导入它们。import {myconstants} from "../constants";{myconstants.map((x,y) => <option key={y}>{x}</option>)}
import {myconstants} from "../constants";
{myconstants.map((x,y) => <option key={y}>{x}</option>)}
4条答案
按热度按时间h4cxqtbf1#
因为它只是JavaScript,有一百万种方法。我通常采取的方法是Map容器以生成内脏。一个for循环或其他什么也可以很好地工作。
或者在ES6中,在更现代的React中,
dw1jzc5e2#
你通常需要提供一个唯一的密钥来确保React可以识别项目,你可以使用uuid来完成这个任务,或者你手头上的一个密钥,例如。
5us2dqdw3#
我来这里是为了寻找一种在服务器端渲染的React应用程序中使用数组作为选项的方法。这个公认的答案帮助我找到了有效的方法。例如,给定一个名为
data
的字符串数组和一个名为selectedOpton
的字符串(它等于data
中的一个字符串,如data[0]
:当提交表单的一部分时,我会自动获得选择的结果。由于它是服务器端呈现的,因此在发送到浏览器之后,直到提交表单之前,不会执行任何JavaScript。包含
onChange={function(){}}
的唯一原因是为了抑制由value={selectedOption}
导致的不合逻辑的错误。React坚持认为,如果一个值被赋值,那么必须定义一个onChange,即使它是服务器端呈现的,这意味着onChange永远不会被触发。rks48beu4#
您也可以将常量抽象到另一个文件中并导入它们。
import {myconstants} from "../constants";
{myconstants.map((x,y) => <option key={y}>{x}</option>)}