小编mik*_*e00的帖子

在react-redux中哪里存储socket连接?

尝试了两种方法:

  1. 从组件connectToServer()内的动作创建者调用并分派,如下所示:StartercomponentDidMount();

    let socket = new Socket('ws://address/socket');
    
    socket.connect();
    
    dispatch({
      type: Constants.SESSION_SAVE_SOCKET,
      socket: socket,
    });
    
    const lobbyChannel = socket.channel('lobby');
    
    lobbyChannel.join()
    .receive('ok', () => {         
      dispatch({
        type: Constants.SESSION_LOBBYCHANNEL_RECEIVE_OK,
      });
    
      dispatch({
        type: Constants.SESSION_SAVE_LOBBYCHANNEL,
        lobbyChannel: lobbyChannel,
      });
    
    }).receive('error', (payload) => {            
        dispatch({
          type: Constants.SESSION_LOBBYCHANNEL_RECEIVE_ERROR,
        });
    });
    
    Run Code Online (Sandbox Code Playgroud)

接下来我通过 redux 的 mapStateToProps 接收状态connect。结果是组件被调用四次并且 props 在结果中为空。

  1. 将所有逻辑放入减速器中,但结果是:组件使用空道具(未定义的属性)渲染,并且在我在控制台日志中看到连接已建立后不久,但组件已渲染。

遇到这样的问题该如何处理呢?感谢您的任何建议。

reactjs phoenix-framework react-redux phoenix-channels

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

SQL Query将值从一个表插入另一个表

我有一个2表结构:

表A:

RID; Name; LP
E    F     1
E    F     2
E    F     3
E    F     12
E    F     152
Run Code Online (Sandbox Code Playgroud)

表B:

LP
1
2
3
12
152
...
156
157
180
itd.
Run Code Online (Sandbox Code Playgroud)

查询类似于:

Insert into TableA(RID, Name, LP) Values ('E', 'F', Select LP from TableB)
Run Code Online (Sandbox Code Playgroud)

我想要实现:

RID; Name; LP
E    F     1
E    F     2
E    F     3
E    F     12
E    F     152
E    F     156
E    F     157
E    F     180
etc.
Run Code Online (Sandbox Code Playgroud)

sql sql-server postgresql

4
推荐指数
1
解决办法
7705
查看次数

如何正确使用依赖注入?

简单案例:我有一个用于记录消息的接口,如下所示:

public interface ILogger
{
   void Log(string message);
}
Run Code Online (Sandbox Code Playgroud)

也许有三个不同的类实现了这个接口.

现在,我可以在一个地方写一行,换行,比如:

kernel.Bind<ILogger>().To<ConsoleLogger>();
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何在许多类中使用该接口,但不通过构造函数注入每个人.因为我们可以使用这么多不同的接口,并且该类构造函数的声明可能很混乱.

c# oop dependency-injection ninject

3
推荐指数
1
解决办法
458
查看次数

以最简单的方式实例化一个对象数组?

给出一个类:

class clsPerson { public int x, y; }
Run Code Online (Sandbox Code Playgroud)

有没有办法创建这些类的数组,每个元素初始化为(默认)构造的实例,而不是在for循环中手动执行,如:

clsPerson[] objArr = new clsPerson[1000];

for (int i = 0; i < 1000; ++i)
    objArr[i] = new clsPerson();
Run Code Online (Sandbox Code Playgroud)

我可以缩短N个对象数组的声明和实例化吗?

c# arrays constructor object new-operator

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

如何在c#中交换通用结构?

我有如下结构.现在,我想要交换2结构.

public struct Pair<T, U>
{
    public readonly T Fst;
    public readonly U Snd;

    public Pair(T fst, U snd)
    {
        Fst = fst;
        Snd = snd;
    }

    public override string ToString()
    {
        return "(" + Fst + ", " + Snd + ")";
    }

    **public Pair<U, T> Swap(out Pair<U, T> p1, Pair<T,U> p2)
    {
        p1 = new Pair<U, T>(p2.Snd, p2.Fst);

        return p1; 
    }**
}
Run Code Online (Sandbox Code Playgroud)

在Main方法中试试这个:

        Pair<int, String> t1 = new Pair<int, string>();
        Pair<String, int> t2 = new Pair<string,int>("Anders",13);
        **t1.Swap(out t1,);** …
Run Code Online (Sandbox Code Playgroud)

c# struct

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

文字字符串赋值会像这样调用String构造函数吗?

出于好奇,如果我打电话:

 string txt = "text"; 
Run Code Online (Sandbox Code Playgroud)

它会在幕后调用吗?

 string txt = new String("text".ToCharArray())?
Run Code Online (Sandbox Code Playgroud)

c# string constructor

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