reactjs - 将 sx prop 传递给自定义组件

标签 reactjs material-ui

我有一个用作布局组件的组件,几乎在所有情况下它都工作得很好,但是有一两个地方我需要能够调整样式,并且我希望能够只需传递我需要的确切样式即可做到这一点,而不是添加一些自定义 Prop 来打开或关闭它们。

该组件如下所示:

const BlockLayout: React.FC<IProps> = ({
  children,
  id,
  forceToBottom,
  sxProps, // <--- What I want to add
}) => {
  return (
    <Box
      id={id}
      sx={[
        {
          backgroundColor: (theme) => theme.palette.background.paper,
          mt: forceToBottom ? 'auto' : 1,
          borderRadius: 0.5,
          display: 'flex',
          border: '1px solid rgba(0, 0, 0, 0.1)',
          flexWrap: 'wrap-reverse',
        },
        sxProps, //<--- How I could use it? 
        (theme) => ({
          ...(theme.palette.mode === 'dark' && {
            border: `1px solid ${lighten(
              theme.palette.background.paper,
              0.15
            )}`,
          }),
        }),
      ]}
    >
      {children}
    </Box>
  )
}

如何做到这一点? Prop 需要什么类型?

最佳答案

the documentation他们只是将类型转换为 const。

您可以使用spread operator按如下方式添加它们:

},
sxProps && ...sxProps,
(theme) => ({

关于reactjs - 将 sx prop 传递给自定义组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74289767/

相关文章:

javascript - 在 React 中导入静态 JSON 数据

javascript - 按下回车键时更新输入值的问题

reactjs - Material 用户界面 : How can I remove spacing on Grid item in small breakpoint?

reactjs - 如何在react js中检查 Material ui主题的类型? (浅色或深色)

javascript - material-ui 中的 <Fade> 只是禁用组件的可见性。如何获得淡入淡出效果并真正隐藏组件?

reactjs - redux-form v6 : Form submission canceled because the form is not connected

javascript - setInterval 在页面更改后运行

javascript - 类型错误 : Cannot read property 'configure' of undefined

javascript - 如何通过 react-bootstrap 在 DropdownButton 中包装太长的标题?

reactjs - 如何提交 Material UI 登录示例?