小编mik*_*kes的帖子

如何在 React 应用程序中渲染 React 应用程序(嵌套的 React 应用程序)

所以问题是是否有可能将 React 应用程序拆分为托管在两个不同主机上的两个不同的独立应用程序,其中应用程序 A 是一种未来控制应用程序 B 和 C 的框架。我有一个问题,我想为两个应用程序(A 应用程序)创建一个共同的基础,然后加载另外两个作为它的内容。就好像我懒惰地加载了从不同地方获取的包。我在考虑三种主要的可能性:

  • 内嵌框架
  • 来自 github 的单个 SPA 项目
  • 使用 ReactDOM.render 方法

我不确定是否有可能,因为 React Router 仍然可能存在问题 - 内部应用程序是否有权操作浏览器路由?

lazy-loading single-page-application reactjs react-router

11
推荐指数
1
解决办法
3760
查看次数

ASP.NET Core的Keycloak客户端

是否存在Asp.net Core的Keycloak客户端?我找到了.net的NuGet包,但它不适用于Core.您是否有任何想法如何轻松地与此安全服务器集成(或可能使用任何其他替代方案)?

.net asp.net keycloak .net-core asp.net-core

6
推荐指数
2
解决办法
8265
查看次数

useEffect内部的状态始终与React Hooks一起引用初始状态

每次我从另一个组件发出消息时,都无法获得消息的完整列表。这是钩子和视图组件:

export function useChat() {
  const [messages, setMessages] = useState([]);

  useEffect(() => {
    const socket = openSocket("http://localhost:3003");
    socket.on("chat message", msg => {
      const newState = update(messages, { $push: [msg] });
      setMessages(newState);
    });
  }, []);

  return { messages };
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,状态不会持久,并且总是显示最后一条消息:

export const HookSockets = () => {
  const { messages } = useChat();
  return (
    <div>
      {messages.map((message, index) => (
        <div key={index}>{message}</div>
      ))}
    </div>
  );
};
Run Code Online (Sandbox Code Playgroud)

如果我按常规方式进行操作,那么一切都会按预期进行:

export class ClassSockets extends Component {
  state = {
    socket: openSocket("http://localhost:3003"),
    messages: [], …
Run Code Online (Sandbox Code Playgroud)

immutability websocket socket.io reactjs react-hooks

6
推荐指数
1
解决办法
2946
查看次数

如何区分键入文本和按快捷键

我正在尝试使用该应用程序对用户活动进行一些研究.我找到了一种方法来制作一个特殊的日志模块(与PRISM结合),它将使用EventManager.RegisterClassHandler静态方法.

我的问题是 - 你如何区分打字文字和按快捷键?在美国它有点容易,因为Ctrl +(任何字母)都没有给你任何字母表的"扩展".因此,只检查按下Ctrl是否无效.可能是一个计时器或DateTime记录按键事件的时间?

也许我应该订阅TextBox.TextInput并忽略KeyDown中的键,如果这个事件被引发?

c# usability user-experience keylogger usability-testing

5
推荐指数
0
解决办法
133
查看次数

ASP.NET Core 标识的自定义 UserStore

基于在GitHub 上发布的实现,我制作了自己的UserStoreRoleStore,它们不使用实体框架(在附加到真实数据库之前,我目前只需要内存中的一个简单用户列表)。为了能够做到这一点,我不得不更改注册。我已经编写了自己的IdentityEntityFrameworkBuilderExtensions,没有 DbContext 和 TryAddSingleton 而不是 TryAddScoped,所以一旦初始化用户列表可以持续整个应用程序生命周期。问题是,Dispose 方法被调用了这么多次……我没有处理任何东西,但是调用的次数太多了。是不是因为我做了UserStoreRoleStore 单例,即使其他一切都按照它们的范围工作?

第二件事是,完成工作UserStore所需的最低限度是什么?

danludwig写道:你只需要IUserStoreIUserPasswordStore,这是非常有可能的,因为我做了一个店实现这两个接口和一个Rolestore的IRoleStore并seemd工作。由于在启动类中的一部分,我也做了RoleStoreservices.AddIdentity<ApplicationUser, IdentityRole>()。我为ASP.NET Core Web 应用程序使用了实体框架授权模板(带有个人用户帐户)。

Arve Systad 和 Anderson Matos写道,你需要这 8 个:

  1. IUserStore<TUser>
  2. IUserPasswordStore<TUser>
  3. IUserTwoFactorStore<TUser>
  4. IUserClaimStore<TUser>
  5. IRoleStore<TRole>
  6. IUserSecurityStampStore<TUser, string>
  7. IUserRoleStore<TUser, string>
  8. UserManager<TUser>

删除所有实体框架包后,我了解到它只提供了实现的UserStoreRoleStore(基于来自 GitHub 的源代码):

  1. IUserLoginStore,
  2. IUserRoleStore,
  3. IUserClaimStore,
  4. IUserPasswordStore,
  5. IUserSecurityStampStore, …

.net asp.net asp.net-mvc entity-framework asp.net-core

5
推荐指数
0
解决办法
6096
查看次数

在Nest 5.5.0中为属性设置not_analyzed

我试图通过Nest 5.5.0设置"not_analyzed"索引类型,我不知道该怎么做.

我的初学者:

var map = new CreateIndexDescriptor(INDEX_NAME)
     .Mappings(ms => ms.Map<Project>(m => m.AutoMap()));

var connectionSettings = new ConnectionSettings().DefaultIndex(INDEX_NAME);
_client = new ElasticClient(connectionSettings);

_client.Index(map);
Run Code Online (Sandbox Code Playgroud)

而Project类:

[ElasticsearchType(Name = "project")]
public class Project
{
    public Guid Id { get; set; }
    [Text(Analyzer = "not_analyzed")]
    public string OwnerIdCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在通过Postman调用索引/ _mapping REST之后,这种init方式会创建某种奇怪的映射.有正常的"映射"JSON部分,就在"createindexdescriptor"下面,几乎有相同的数据.

"examinations4": {
    "mappings": {
        "project": {
            (...)
        },
        "createindexdescriptor": {
            "properties": {
                "mappings": {
                    "properties": {
                        "project": {
                            "properties": {
                                "properties": {
                                    "properties": {
                                        "id": {
                                            "properties": { …
Run Code Online (Sandbox Code Playgroud)

c# mapping elasticsearch nest elasticsearch-analyzers

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

使用 Webpack 代理创建 React App 中的 WebSockets

我使用版本 3.1.2(2019 年 9 月 19 日)中的 Create React App 创建了我的 React 应用程序。我试图为 Web Socket 请求配置代理,但似乎当我使用代理时,没有建立连接。我用这个例子来设置我的东西。该服务器是示例中的 Asp.Net Core,只要将地址连接到初始化中,它就可以工作。这个片段有效:

const hubConnection = new HubConnectionBuilder()
  .withUrl("https://localhost:44392/chatHub")
  .build();
Run Code Online (Sandbox Code Playgroud)

而这不会:

const hubConnection = new HubConnectionBuilder()
  .withUrl("chatHub")
  .build();
Run Code Online (Sandbox Code Playgroud)

有了这个:

{
  "proxy": "https://localhost:44392/",
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@microsoft/signalr": "^3.0.0",
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "react-scripts": "3.1.2"
  },
(...)
Run Code Online (Sandbox Code Playgroud)

我在这里看到一个建议,我可能会在代理设置中使用一个对象,但是当我尝试时,我收到一个错误,即代理地址必须是单个字符串,而不是一个对象:

 proxy: {
      '^/api': {
        target: '<url>',
        ws: true,
        changeOrigin: true
      },
      '^/foo': {
        target: '<other_url>'
      }
Run Code Online (Sandbox Code Playgroud)

websocket signalr reactjs webpack create-react-app

5
推荐指数
2
解决办法
5049
查看次数

Flutter ARB 本地化抛出“getter was called on null”错误

按照官方国际化教程的提示,我The getter was called on null在尝试使用从 ARB 文件自动生成的翻译引擎 ( AppLocalizations.of(context).helloWrold) 时得到了:

import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class Login extends StatelessWidget {
  final loginAction;
  final String loginError;

  const Login(this.loginAction, this.loginError);

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        RaisedButton(
          onPressed: () {
            loginAction();
          },
          child: Text(AppLocalizations.of(context).helloWorld),
        ),
        Text(loginError ?? ''),
      ],
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

localization dart flutter

0
推荐指数
1
解决办法
462
查看次数