Material ui 在react autosuggest项目中是否有一种使用主题颜色的简单方法

Material ui 在react autosuggest项目中是否有一种使用主题颜色的简单方法,material-ui,autosuggest,Material Ui,Autosuggest,我正在尝试使用react autosuggest,因为它的设计目的是,对我来说,renderSuggestion的方法签名应该包含实际的主题,因此我们可以在样式中使用来自主题的变量 以下是我的解决方法,但我只想确保我没有将一些无用的东西变得复杂: <AutoSuggest renderSuggestion={crea

我正在尝试使用react autosuggest,因为它的设计目的是,对我来说,renderSuggestion的方法签名应该包含实际的主题,因此我们可以在样式中使用来自主题的变量

以下是我的解决方法,但我只想确保我没有将一些无用的东西变得复杂:

                                        <AutoSuggest
                                                renderSuggestion={createRenderSuggestion(this.props.classes)}
/>
我必须在一个方法中定义一个方法来访问实际的主题

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>
    )
}
const createRenderSuggestion=theme=>suggestion=>{
log(“设置名称:,主题.itemName的css”)
返回(
{suggestion.name}
纽约市
)
}
只是要确保清楚:当我试图访问方法中的主题时,我无法查看

您还可以对样式使用
(样式,{withTheme:true})(ShopSuggestBox)如果你不想写作


无论哪种方式,
主题
都可以在你的道具中访问
ShopSuggestBox

@moroshko我没有找到react autosuggestHi@epsilon的标签,谢谢你的回答。确实,现在我添加了样式(样式,{withTheme:true}),这个主题就可以在道具中使用了。问题是它没有包括我作为参数传递给withStyles的新样式。是否仅覆盖现有样式???在
props.class
中提供了
withStyles(styles)
中的样式。请记住,这些只是类名,而不是实际的样式对象。如果你需要内联样式,你不必使用
withStyles
p.s:在你指给我的文档中有关于withTheme的信息,我查看了withStyles的文档,但没有看到{withTheme:true}选项:我认为这是一个令人困惑的文档,因为作为材料的新来者,有描述的问题,但没有推荐的最佳实践。感谢它在使用props.class时起作用,我找到了我的属性。不幸的是,我仍然不清楚为什么这些属性没有插入到style对象中(是为了避免样式在整个应用程序中传播吗?):在我天真的想法中,我想象style对象是通过withStyles调用用覆盖的值和添加的属性重建的。我知道我错了,但为什么?@ZiedHamdi我想你链接的部分中回答的每个问题都是特定于打字脚本的。它并不是一个完整的风格文档
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>
    )
}