我仍然对 React 钩子有所了解,并试图useMemo
根据不同的因素有条件地使用。
我的 useMemo 部分看起来像这样
const headers = React.useMemo(
() => [
{
Header: "Name",
accessor: "name",
Cell: AvatarCell,
emailAccessor: "email",
},
{
Header: "Country",
accessor: "country",
Filter: SelectColumnFilter,
filter: "equals",
Cell: Country,
},
{
Header: "Address",
accessor: "address",
Cell: Address,
},
],
[]
);
但是我想headers
根据选择的语言来更改,所以我尝试使用 `if 语句,但这不起作用
if (language === 'en')
{
const columns = React.useMemo(
() => [
{
Header: "Name",
accessor: "name",
Cell: AvatarCell,
emailAccessor: "email",
},
{
Header: "Country",
accessor: "country",
Filter: SelectColumnFilter,
filter: "equals",
Cell: Country,
},
{
Header: "Address",
accessor: "address",
Cell: Address,
},
],
[]
);
}
if (language === 'de')
{
const columns = React.useMemo(
() => [
{
Header: "Name",
accessor: "name",
Cell: AvatarCell,
emailAccessor: "email",
},
{
Header: "Land",
accessor: "country",
Filter: SelectColumnFilter,
filter: "equals",
Cell: Country,
},
{
Header: "Adresse",
accessor: "address",
Cell: Address,
},
],
[]
);
}
but it fails to compile and I get a message saying that I called the react hook conditionally.
How can I use one or the other useMemo based on the value of `language`
Thanks in advance