小编Mat*_*ong的帖子

React-router v6 扩展搜索参数而不是替换它

目前,这样做setSearchParams(/* an object */)将替换现有的搜索参数。如果我想扩展搜索参数而不是替换它们,例如添加新参数。实现这一目标的最优雅的方式是什么?

我知道我可以直接修改searchParams,然后做类似的事情setSearchParams(newSearchParamsToObject)。然而,sincesearchParams不是一个对象,而是一个URLSearchParams。代码会又长又难看。

编辑:因为有人似乎不明白我发布的内容

目前,如果我们这样做:

const [searchParams, setSearchParams] = useSearchParams({ a: 1 });
setSearchParams({ b: 2 });
Run Code Online (Sandbox Code Playgroud)

它将替换searchParams?b=2.

我想要实现的是添加b=2到现有的搜索参数,即最终的搜索参数应该是?a=1&b=2.

reactjs react-router

28
推荐指数
2
解决办法
3万
查看次数

根据具有 SSR 支持的断点更改 props

我正在使用material-ui@v5,即。阿尔法分支。

目前,我有一个自定义Timeline组件可以执行以下操作:

const CustomTimeline = () => {
  const mdDown = useMediaQuery(theme => theme.breakpoints.down("md"));

  return (
    <Timeline position={mdDown ? "right" : "alternate"}>
      {/* some children */}
    </Timeline>
  );
};
Run Code Online (Sandbox Code Playgroud)

它基本上按预期工作,但移动用户可能会遇到布局变化,因为它useMediaQuery是使用 JS 实现的并且仅在客户端。我想寻求与上述代码等效的 CSS 实现,以便与 SSR 一起使用。

我想到了以下几点:

const CustomTimeline = () => {

  return (
    <Fragment>
      <Timeline sx={{ display: { xs: "block", md: "none" } }} position="right">
        {/* some children */}
      </Timeline>
      <Timeline sx={{ display: { xs: "none", md: "block" } }} position="alternate">
        {/* …
Run Code Online (Sandbox Code Playgroud)

javascript breakpoints reactjs material-ui server-side-rendering

10
推荐指数
1
解决办法
1140
查看次数

将 sx prop 添加到自定义组件

我正在使用 MUI v5 和 Gatsby Image。我希望在整个应用程序中保持样式语法的一致性,因此我尝试将sxprop 添加到GatsbyImage.

这是我尝试过的:

<Box
  component={GatsbyImage}
  sx={/* my sx styles */}
/>
Run Code Online (Sandbox Code Playgroud)

这就是我想要的。然而,我注意到该sxprop 以某种方式传递给了img. 这最终会<img sx=[object Object]/>在我的 HTML 中得到 a 。

虽然这并不会真正影响我的应用程序,但我想知道是否有更好的方法来实现这一目标?

javascript reactjs material-ui

7
推荐指数
1
解决办法
5136
查看次数

动态更改 Web 清单中的背景颜色

所以我有一个应用程序,允许用户在浅色和深色模式之间切换。我想background_color在用户切换主题模式时进行相应的设置。

对于theme_color,我可以动态设置元标记并将占位符值放入manifest.json. 但据我所知,没有元数据background_color

manifest progressive-web-apps

7
推荐指数
1
解决办法
3856
查看次数