'How can I automatically import an icon which fetches from the server in NextJS?
I want to dynamically generate a page in the Next-JS app. Inside this page should be imported automatically Icons which fetches from the server Instead of writing it statically:
{ 
    "id": 1, 
    "title": "Budget", 
    "value": "$24K",
    "persent" :"12%",
    "duration" :"Since Last Month",
    "icon":"MoneyIcon",
    "rise":"false"
},
in this timeMoneyIcon from Material-UI.
In this case, was used map method in order to render fetched data.
How can I put this fetched icon name as a tag same as <MoneyIcon/> in the component?
        {posts.map((post) => (
          <>
            <Grid item lg={3} sm={6} xl={3} xs={12}>
              <Card sx={{ height: "100%" }}>
                <CardContent>
                  <Grid container spacing={3} sx={{ justifyContent: "space-between" }}>
                    <Grid item>
                      <Typography color="textSecondary" gutterBottom variant="overline">
                        {post.title}
                      </Typography>
                      <Typography color="textPrimary" variant="h4">
                        {post.value}
                      </Typography>
                    </Grid>
                    <Grid item>
                      <Avatar
                        sx={{
                          backgroundColor: "error.main",
                          height: 56,
                          width: 56,
                        }}
                      >
                        **<MoneyIcon />**
                      </Avatar>
                    </Grid>
                  </Grid>
                  <Box
                    sx={{
                      pt: 2,
                      display: "flex",
                      alignItems: "center",
                    }}
                  >
                    <ArrowDownwardIcon color="error" />
                    <Typography
                      color="error"
                      sx={{
                        mr: 1,
                      }}
                      variant="body2"
                    >
                      {post.persent}
                    </Typography>
                    <Typography color="textSecondary" variant="caption">
                      {post.duration}
                    </Typography>
                  </Box>
                </CardContent>
              </Card>
            </Grid>
          </>
        ))}
							
						Solution 1:[1]
If I understand you correctly you are trying to pass the MUI Icon to the Component and render the icon. For that you can simply pass the Icon as a value of your object wrapped in a React Fragment.
import AccountBalanceIcon from '@mui/icons-material/AccountBalance';
const myObject = {
  id: 1,
  value: "24K",
  icon: <><AccountBalanceIcon/></>
)};
export default function MyComponent(props) {
    return(
    <div>
        <span>{myObject.value}</span>
        {myObject.icon}
    <div>
    )
}
    					Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | Mucko | 
