Для такого рода проблем вы можете создать поисковый хеш, который делает ваш тип сериализуемым.Например:
import TrendingIcon from 'whevever'
const iconHash = {
trendingIcon: TrendingIcon
}
export iconHash
Затем, когда вам нужен значок, вы сохраняете строковое представление и ищите его.Например:
import iconHash from 'wheverer'
...
<ButtonType
key={v4()}
Icon={iconHash[stockIconList[i].Icon]}
color={stockIconList[i].color}
text={stockIconList[i].text}
onClick={this.handleRoute.bind(this, stockIconList[i].onClick)}
/>
В вышеприведенном случае ваши редукционные данные могут выглядеть следующим образом:
const initState = {
salesIconList: {
Icon: 'trendingIcon', // notice it is now a string
color: "#ff9800",
text: "sale analysis",
onClick: "/sales/sales"
}
}
Это грубый пример, но, надеюсь, вы получите общее представление.Вам нужно найти способ сделать ваши типы сериализуемыми.