小编Cha*_*e G的帖子

Material-UI 5 DataGrid 样式在组件之间不是隔离的

我刚刚从 Material-UI v4 升级到 v5(现在是 MUI)。如果我有一个DataGrid组件和一个类似组件的组件Select(aMenuItem也有问题),则该Select组件将无法正常工作。加载的一些附加样式会DataGrid干扰它。

我将在此处展示的示例是,值不再是下拉列表,而是水平列出,全部粉碎在一起。请注意,DataGrid此演示故意为空。

当 DataGrid 存在时,选择下拉列表不起作用

与预期的功能相反,如下所示:

选择下拉菜单按预期工作

我已将代码放在CodeSandbox上

请注意,它"@mui/x-data-grid": "^4.0.0"依赖于"@material-ui/core": "^4.12.3". 我对此感到不舒服,但它确实将其列为依赖项(除非我在某个地方错过了某些东西)。

我是否遗漏了什么,或者我正在使用的最新版本是否存在错误DataGrid?顺便说一句,我的实际应用程序中的所有功能都DataGrid运行良好。

为了完整起见,我还将在此处包含代码:

import React from "react";
import { render } from "react-dom";

import { DataGrid } from "@mui/x-data-grid";
import Select from "@mui/material/Select";
import MenuItem from "@mui/material/MenuItem";

function App() {
  return (
    <div>
      <Select>
        <MenuItem value={10}>Ten</MenuItem>
        <MenuItem value={20}>Twenty</MenuItem>
        <MenuItem value={30}>Thirty</MenuItem>
      </Select>
      {/* with DataGrid, Select will shown …
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui

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

在 django 管理表单中将查询字符串参数添加到媒体文件

我想将版本号附加到 django 管理表单的 Media 类中定义的 javascript 文件。

  class Media:    
        js = ['scripts/my_file.js?v=abc1234, ]
Run Code Online (Sandbox Code Playgroud)

但是...... url 被编码,以便“?” 变为“%3F”。

有没有办法让 django 不对 URL 进行编码?

附带说明一下,我这样做的原因是通过将以下内容放入我的设置文件中,在站点加载时获取静态文件的最后一次 git 提交:

STATIC_COMMIT = check_output(['git', 'log','-n', '1','--pretty=format:%h','--', os.path.join(BASE_DIR, 'my_app/static')]).decode("utf-8").strip()
Run Code Online (Sandbox Code Playgroud)

然后在 Media 类中使用以下内容:

js = [f'scripts/my_file.js?{settings.STATIC_COMMIT}', ]
Run Code Online (Sandbox Code Playgroud)

如果我能做到这一点,那么我将永远不必手动对媒体文件进行版本控制或要求用户刷新浏览器缓存,或者最糟糕的是从缓存运行错误的 javascript(或 css)文件。

git django django-admin

5
推荐指数
1
解决办法
1463
查看次数

minikube 的 ingress 在 Mac 和 Ubuntu 上的工作方式不同。何时将 etc/hosts 设置为 127.0.0.1 与“minikube ip”?

我有一个可以在多种环境下运行的简单入口文件,但要访问它,它的行为会有所不同,具体取决于我是在 Mac 还是 Ubuntu 机器上运行 minikube 集群。

具体来说,对于我的 Mac,我必须将条目:添加 127.0.0.1 my.kube到 /etc/hosts,并运行minikube tunnel 以便能够在浏览器中访问我的应用程序,网址为http://my.kube

但是,对于我的 Ubuntu 系统,我必须获取minikube ip并将结果 IP 放入其中,/etc/hosts例如192.168.49.2 my.kube。然后我不需要运行minikube tunnel

虽然我可以看到每个的优点和缺点:

  1. 使用127.0.0.1和 隧道消除了对 minikube ip 的依赖,如果删除并重新创建集群,这可能会发生变化(尽管已经进行了一些工作以使其持久化)。
  2. 使用 minikube ip 并且不需要隧道也很好。

但是,我的问题是为什么事情的表现完全不同?

我已经在两个环境上启用了入口插件minikube addons enable ingress

当我检查入口创建的负载均衡器的主机名时,kubectl get ingress my-ingress -o yaml我得到了相同的结果。我希望在使用 minikube IP 的情况下看到一个 IP(Ubuntu)。

....
status:
  loadBalancer:
    ingress:
    - hostname: localhost
Run Code Online (Sandbox Code Playgroud)

再说一次,所有服务都已启动并运行良好,问题只是其中包含哪些内容/etc/hosts以及是否minikube tunnel正在运行。

另外,需要明确的是,我的 Ubuntu …

minikube kubernetes-ingress

5
推荐指数
1
解决办法
3010
查看次数