我想翻译对象内部的单词。正在调用myInformation,并将其与myCompany一起放在合并变量中。
import { useTranslation } from 'react-i18next'
const myInformation = {
title: 'My information',
icon: InfoOutlinedIcon,
links: [
{
name: 'Personal information',
slug: `/profile/personal-information`,
icon: InfoOutlinedIcon,
},
{
name: 'My loyalty programs',
slug: `/profile/my-loyalty-programs`,
icon: FavoriteBorderOutlinedIcon,
},
{
name: 'Id documents',
slug: `/profile/id-documents`,
icon: ContactMailIcon,
},
{
name: 'My password',
slug: `/profile/my-password`,
icon: VpnKeyIcon,
},
],
}
const ViewInformation = () => {
const merge = [myInformation, myCompany]
const renderList = merge.map((item, i) => (
<OneMenuItem key={i} handleClose={handleClose} item={item} />
))
return({renderList})
}当我在myInformation下添加const {t}= useTranslation()时,它不允许我这样做。当单词在地图中时,我如何翻译它们?
const oneMenuItem = () => {
//some other codes here
const renderNestedLinks = item.links
item.links.map((link, key) => {
return (
<Box key={key} mt={0.5}>
<ListItem
onClick={handleClose}
to={link.slug}
component={Link}
className={classes.nested}
>
<ListItemIcon style={{ minWidth: '40px' }}>
{<link.icon color="primary" />}
</ListItemIcon>
<ListItemText
className={classes.listItemText}
primary={link.name}
/>
</ListItem>
</Box>
)
})
return ({renderNestedLinks})
}发布于 2020-10-14 23:09:36
您可以在OneMenuItem内部调用useTranslation,将myInformation中的名称设置为转换键。假设您的组件的名称是ViewInformation
const ViewInformation = () => {
...component logic
const myInformation = {
title: 'my_information',
icon: InfoOutlinedIcon,
links: [
{
name: 'personal_information',
slug: `/profile/personal-information`,
icon: InfoOutlinedIcon,
},
...
],
}
...component logic
const merge = [myInformation, myCompany]
const renderList = merge.map((item, i) => (
<OneMenuItem key={i} handleClose={handleClose} item={item} />
))
}然后,在OneMenuItem中
import { useTranslation } from 'react-i18next';
const OneMenuItem = () => {
const { t } = useTranslation();
...component logic
item.links.map((link, key) => {
return (
<Box key={key} mt={0.5}>
<ListItem
onClick={handleClose}
to={link.slug}
component={Link}
className={classes.nested}
>
<ListItemIcon style={{ minWidth: '40px' }}>
{<link.icon color="primary" />}
</ListItemIcon>
<ListItemText
className={classes.listItemText}
primary={t(link.name)} // We use t() here, since item.name is a translation key
/>
</ListItem>
</Box>
)
})
}https://stackoverflow.com/questions/64356157
复制相似问题