Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 材质ui的makeStyles中的动态值_Reactjs_Material Ui - Fatal编程技术网

Reactjs 材质ui的makeStyles中的动态值

Reactjs 材质ui的makeStyles中的动态值,reactjs,material-ui,Reactjs,Material Ui,我在数据库中存储了一些样式,因此用户可以按照以下方式重新设置其组件的样式: const stylesFromDatabase = { backgroundColor: "blue", color: "red" } 有没有可能将这些样式引入到材质UI的makeStyles中?可能是这样的吗- const useStyles = makeStyles(theme => ({ textField: stylesFromDatabase => ({ width: "

我在数据库中存储了一些样式,因此用户可以按照以下方式重新设置其组件的样式:

const stylesFromDatabase = {
backgroundColor: "blue",
color: "red"
}
有没有可能将这些样式引入到材质UI的makeStyles中?可能是这样的吗-

    const useStyles = makeStyles(theme => ({
    textField: stylesFromDatabase => ({
    width: "100%",
    ...stylesFromDatabase
  }),
或者,我可以使用什么将makeStyles生成的类与javascript对象组合在一起?

是的,完全可以将javascript对象包含到makeStyles中。多亏了spread操作符

建议首先在对象上展开,以便可以轻松覆盖任何样式。 因此,最好按以下步骤进行

const useStyles=makestylesTime=>{ 文本字段:{ …stylesFromDatabase,//对象 宽度:100%, 颜色:绿色,//这将覆盖红色更容易微调 }, };
为了将来的海报,我的原始帖子中的代码工作得很好,我只是有一些东西后来覆盖了它!如果没有回调函数,它是未定义的–卡佩罗只是

Hmm,我知道你来自哪里,但这会使样式超出我试图设置的文本字段。我已经编辑了我的原始q以显示我现在正在尝试的内容,但仍然无法让它工作。顺便说一句,我没有忘记将stylesFromDatabase传入。好的,从您的编辑开始。你只想把这个对象传递给textField,对吗?是的,我想把数据库中的所有值传递给帖子的第一个块。请看我更新的答案。您不一定需要回调函数。我们可以直接在textField中展开对象。这种语法应该能很好地满足您的需要。谢谢您的帮助:为了将来的海报,我的原始帖子中的代码工作得非常好,我只是有一些东西后来覆盖了它!如果没有回调函数,它是未定义的,而不是添加新的答案,为什么不编辑您的问题,并在该问题的末尾添加此引用?