【发布时间】:2021-09-09 08:24:58
【问题描述】:
在 useEffect 中更新后,我没有得到 useState 变量(selectedItem)的更新值。 我有 2 个 useEffect 第一个依赖数组为空,我正在根据角色更改下拉值。
在 Second UseEffect Dependency 数组中,我有 DropDown 值,当我访问 DropDown 值时,我总是得到我的 Dropdown 的默认值。我无法理解为什么会发生这种情况以及如何解决它。如何根据其他 useEffect 中的角色获取 selectedItem 值。
import { IDropdownOption } from '@fluentui/react';
import React from 'react';
import { useState } from 'react';
const [selectedItem, setSelecteditem] = useState<IDropdownOption>({
key: "Default",
text: "Default",
});
function MyFirstComponent(props: any)
{
React.useEffect(() => {
async function setDropDownValue() {
if (props.userRole == "Admin") {
setSelecteditem({
key: "Admin",
text: "Admin",
});
} else if (props.userRole == "Support") {
setSelecteditem({
key: "Support",
text: "Support",
});
} else {
setSelecteditem({
key: "Default",
text: "Default",
});
}
}
setDropDownValue();
}, []);
React.useEffect(() => {
async function setDetailsBasedOnDropDownValue() {
if (selectedItem?.key == "Admin")
{
//Business Logic
}
else if (selectedItem?.key == "Support")
{
//Business Logic
}
else
{
//Business Logic
}
}
setDetailsBasedOnDropDownValue();
}, [selectedItem.key]);
}
【问题讨论】: