Reactjs Typescript,使用字符串查找枚举
我正在做我的第一个打字脚本和React项目。我有一个测验应用程序在 现在,从下拉菜单中选择一个类别实际上没有任何作用。我需要使用所选选项从所选类别获取问题的帮助 我有一个枚举类别 在端点提取问题的函数 用户使用以下onChange功能从菜单中选择类别。所选选项以selectedOption作为type OptionType的状态存储 Console logging selectedOption在此返回{value:“ENTERTAINMENT_BOOKS”,标签:“BOOKS”} 如何使用selectedOption中的值中的字符串在类别枚举中查找成员 我尝试了Reactjs Typescript,使用字符串查找枚举,reactjs,typescript,enums,react-select,Reactjs,Typescript,Enums,React Select,我正在做我的第一个打字脚本和React项目。我有一个测验应用程序在 现在,从下拉菜单中选择一个类别实际上没有任何作用。我需要使用所选选项从所选类别获取问题的帮助 我有一个枚举类别 在端点提取问题的函数 用户使用以下onChange功能从菜单中选择类别。所选选项以selectedOption作为type OptionType的状态存储 Console logging selectedOption在此返回{value:“ENTERTAINMENT_BOOKS”,标签:“BOOKS”} 如何使用sel
Category[Category]
和Category[Category?.value]
,但两者都不起作用
我是Typescript的新手,因此任何反馈都非常感谢,如果我以错误的方式进行此操作,请告诉我。您仅使用
.value
属性调用setSelectedOption
。请参见第一行末尾的.value
const value = (selectedOption as OptionType).value;
setSelectedOption(value);
如果您使用的是更严格的类型,则会在这方面出错。不幸的是,OptionType['value']
是any
并且any
可分配给任何对象,因此可以调用setSelectedOption(any)
您可能在发布后更改了代码,因为它似乎将值
记录为枚举
中的编号
值,而不是键“娱乐书籍”
。
试试这个:
type OptionType = {
label: string;
value: Category; // is a `number`, but only the specific numbers in the enum
}
onChange={(selectedOption) => {
const value = (selectedOption as OptionType).value;
setSelectedOption(value)
console.log(selectedOption)
}}
type OptionType = {
label: any;
value: any;
}
const [selectedOption, setSelectedOption] = useState<OptionType>();
const startTrivia = async () => {
setLoading(true);
setGameOver(false);
const category = selectedOption
console.log(category)
const newQuestions = await fetchQuizQuestions(
TOTAL_QUESTIONS,
Category["SCIENCE_AND_NATURE"],
Difficulty.HARD,
);
setQuestions(newQuestions);
setScore(0);
setUserAnswers([]);
setNumber(0);
setLoading(false);
}
const value = (selectedOption as OptionType).value;
setSelectedOption(value);
type OptionType = {
label: string;
value: Category; // is a `number`, but only the specific numbers in the enum
}