小编Haw*_*zey的帖子

向通过 IHttpClientFactory 创建的所有客户端添加处理程序?

有没有办法向 IHttpClientFactory 创建的所有客户端添加处理程序?我知道您可以对指定客户执行以下操作:

services.AddHttpClient("named", c =>
{
    c.BaseAddress = new Uri("TODO");
    c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    c.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue
    {
        NoCache = true,
        NoStore = true,
        MaxAge = new TimeSpan(0),
        MustRevalidate = true
    };
}).ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
{
    AllowAutoRedirect = false,
    AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
});
Run Code Online (Sandbox Code Playgroud)

但我不想使用命名客户端,我只想向通过以下方式返回给我的所有客户端添加一个处理程序:

clientFactory.CreateClient();
Run Code Online (Sandbox Code Playgroud)

c# dotnet-httpclient asp.net-core httpclientfactory

14
推荐指数
1
解决办法
2285
查看次数

Material UI 使用 value 属性中的对象选择多个组件,添加重复条目

我有一个多重选择,我将一个对象传递到具有结构的 value 属性中:

在此输入图像描述

选择组件如下所示:

<Select
            multiple
            value={entities}
            onChange={handleChange}
            input={<Input />}
            renderValue={(selected) => (
              <div className={classes.chips}>
                {selected.map((value) => (
                  <Chip
                    key={value.entityId}
                    label={value.entityName}
                    className={classes.chip}
                  />
                ))}
              </div>
            )}
          >
            {props.entityList.map((item, index) => (
              <MenuItem key={item.entityId} value={item}>
                {item.entityName}
              </MenuItem>
            ))}
          </Select>
Run Code Online (Sandbox Code Playgroud)

当弹出选择时,它会显示正确的实体名称,但不会将其显示为在下拉列表中选择。

如果我在下拉列表中选择此项目,它会添加另一个具有相同 id 和相同名称的条目,而不是删除已经存在的项目,这个新添加的重复项可以被删除,并在选择时突出显示,因此该功能可以正常工作。

我存储entities的状态类似于来自父组件的状态:

在此输入图像描述

解决方案:

我已确保在选择中使用相同的对象,初始对象与在更改函数中分配的对象不同。这解决了我的问题。

const [entities, setEntity] = React.useState(
props.entityList.filter((e) =>
  props.assignedEntities.some((ae) => e.entityId === ae.entityId)
)
Run Code Online (Sandbox Code Playgroud)

);

multi-select reactjs material-ui react-redux

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