gpt4 book ai didi

reactjs - 根据 ReactJS 中的下拉列表显示和隐藏字段

转载 作者:行者123 更新时间:2023-12-05 05:47:32 25 4
gpt4 key购买 nike

我已经实现了,但是我错误地删除了代码......通过下面的示例它可以帮助我显示 2 个状态。

import React, { useState } from 'react';

export default () => {
const [show, setShow] = useState(true);

return (
<>
<button
type="button"
onClick={() => {
setShow(!show);
}}
>
Mostrar {show ? 'Div 2' : 'Div 1'}
</button>

{show ? (
<div style={{ color: 'red' }}>Div 1</div>
) : (
<div style={{ color: 'blue' }}>Div 2</div>
)}
</>
);
};

但我有一个包含四个选项的下拉列表,根据我选择的选项,它会在表单上显示不同的字段。

import "./styles.css";
import React, {useState} from "react";

export default function App() {

const [animal, setAnimal] = useState(null);



return (
<div className="App">
<>
<div>
<label htmlFor="tipoId" className="col-md-6">
Select Animal
</label>
<select onClick={() => setAnimal(!animal)}>
<option value="0" selected hidden>Horse</option>
<option value="1" selected>Tiger</option>
<option value="2">Lion</option>
<option value="3">Panther</option>
</select>
</div>

{
animal === "1" ?
<> <div> TIGER</div> </>
: animal === "2" ? (
<> <div>LION</div> </>
): (
<> <div>PANTHER</div> </>
)
}
</>
</div>

); }

如您所见,当前代码不起作用,因为它只允许有 2 个状态,默认显示黑豹状态,如果选择另一个选项,它只会显示老虎状态,但狮子场是从未显示。以前,我什至能够在下拉列表中包含 6 个选项,并且在选择这些选项时,它们会显示相应选项的字段。

我需要再说一遍 :(

最佳答案

在这里你可以使用 switch case 而不是 if三元运算符 因为你有多个条件要检查。
看下面的代码,我添加了一个单独的函数 getAnimalDiv,它将负责根据所选的 option 返回 div
当您设置状态 animal 而不是使用 !animal 时,将其设置为 event.target.value 这样您就可以在状态。
如果你执行 !animal,它只会设置 truefalse,这在这种情况下没有用。

import "./styles.css";
import React, { useState } from "react";

export default function App() {

const [animal, setAnimal] = useState(null);

function getAnimalDiv(){
switch(animal){
case "0":
return <div>TIGER</div>;
case "1":
return <div>LION</div>;
case "2":
return <div>PANTHER</div>;
case "3":
return <div>Other option</div>;
default:
return null;
}
}
return (
<div className="App">
<>
<div>
<label htmlFor="tipoId" className="col-md-6">
Select Animal
</label>
<select
onClick={(event) => {
// here set target value to state which is 0, 1, 2, 3
setAnimal(event.target.value);
}}>
<option value="0" selected hidden>Horse</option>
<option value="1" selected>Tiger</option>
<option value="2">Lion</option>
<option value="3">Panther</option>
</select>
</div>
{getAnimalDiv()}
</>
</div>
)
}

关于reactjs - 根据 ReactJS 中的下拉列表显示和隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70995308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com