我正在尝试使用react-autosuggest,因为对我来说 renderSuggestion 的方法签名应包含实际主题,因此我们可以在我们的主题中使用该主题的变量样式
这是我的解决方法,但我只想确保我没有做一些毫无用处的复杂工作:
<AutoSuggest
renderSuggestion={createRenderSuggestion(this.props.classes)}
/>
变量 this.props.classes 在创建组件时填充
withStyles(styles)(ShopSuggestBox)
我必须在一个方法中定义一个方法才能访问实际的主题
const createRenderSuggestion = theme => suggestion => {
console.log("setting css of name:", theme.itemName)
return (
<div>
<div className={theme.itemName}>
{suggestion.name}
</div>
<div className={theme.itemInfo}>
NYC
</div>
</div>
)
}
请务必清楚:当我尝试使用方法 function renderSuggestion(suggestion, { query, isHighlighted }) 访问主题时,我无法
答案 0 :(得分:0)
看看https://material-ui.com/customization/themes/#accessing-the-theme-in-a-component。
如果您不想写作,也可以使用withStyles(styles, { withTheme: true })(ShopSuggestBox);
。
然后以theme
的道具访问ShopSuggestBox
。