小编Kar*_*ták的帖子

redux/react app中的状态具有属性为reducer的属性

我正在使用Redux和React创建一个应用程序.我遇到一个问题,我无法将状态映射到组件属性,因为状态具有与我使用的reducer的名称匹配的属性.

根减少器是使用combineReducers方法创建的

const rootReducer = combineReducers({
  appReducer
});
Run Code Online (Sandbox Code Playgroud)

最初的状态是

const initialState = {
  sources: [], 
  left: {}, 
  right: {},
  diff: {} 
}
Run Code Online (Sandbox Code Playgroud)

但是在组件功能中mapStateToProps:

function mapStateToProps(state) {
  return {
    sources: state.sources
  }
}
Run Code Online (Sandbox Code Playgroud)

state.sourcesundefined因为state参数的值是

{
  appReducer: {
    sources: [], 
    left: {}, 
    right: {}, 
    diff: {}
  }
}
Run Code Online (Sandbox Code Playgroud)

这是redux的一个特性吗?所以当我使用更多reducers时,所有这些都会为state变量添加新属性?或者我身边有什么问题(我在redux教程中从未注意到这种行为).

谢谢

javascript state reactjs redux

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

域驱动设计和域事件

我是DDD的新手,我现在正在阅读文章以获取更多信息.其中一篇文章侧重于域事件(DE).例如,发送电子邮件是在执行一段代码时满足某些条件后引发的域事件.

代码示例显示了处理域事件的一种方法,然后是本段

请注意,上述代码将在与常规域工作相同的事务中的同一线程上运行,因此您应该避免执行任何阻止活动,例如使用SMTP或Web服务.相反,更喜欢使用单向消息传递与其他阻止活动的东西进行通信.

我的问题是

  1. 这是处理DE的一般问题吗?或者只是关注上述文章中的解决方案?
  2. 如果在事务中引发域事件并且系统不会同步处理它们,那么应如何处理它们?
  3. 当我决定序列化这些事件并让调度程序(或任何其他机制)执行它们时,当事务被回滚时会发生什么?(在事件中引发的文章事件是在事务中执行的代码)谁将取消它们(当它们不被持久化到数据库时)?

谢谢

domain-driven-design domain-events

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

在ReflectionOnly模式下将程序集加载到新的AppDomain中时,方法没有实现

在我们的应用程序(具有65个项目的解决方案)中,将在运行时分析所有引用的程序集是否存在Ninject模块(也应用了一些过滤)。这些模块稍后会加载到Ninject内核中,并且每个模块都声明该内核的绑定。

我们采用了一种加载程序,该加载程序以“仅反射”模式将引用的程序集加载到单独的程序集中。与Ninject可以从目录中加载程序集的方式的不同之处在于,该目录可以包含带有不应加载的模块的程序集。而且从一开始,并不是所有引用的程序集都已加载。

问题在于,加载程序(贷给Sacha Barber)无法加载带有

System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information
Run Code Online (Sandbox Code Playgroud)

LoaderExceptions带有一个条目:

Method 'BeforeLoad' in type 'Lekis.AppBase.Core.BLLBaseCore' from assembly 'AppBaseCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
Run Code Online (Sandbox Code Playgroud)

以下是一些“有趣”的事实:

  • 方法BeforeLoad是虚拟的,并且是接口方法的实现
  • 上周,加载程序异常表明不同的方法没有实现(该方法不是虚拟的),后来,当我明确实现该方法时,消息提示找不到该方法。
  • 上周,程序集的目标框架AppBaseCore是.NET 3.5,并且3个程序集无法加载
  • 现在程序集的目标框架AppBaseCore是.NET 4和5程序集加载失败
  • 否则应用程序一切都很好

当我使用ILSpy和ILDAsm检查程序集时,它们没有任何错误(很明显)。

在这一点上,我真的迷路了,不知道如何解决这个问题。

任何帮助表示赞赏。

谢谢

.net c# appdomain assembly.reflectiononly .net-assembly

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

D3多线图 - 奇怪的动画

我创建了一个带有简单动画的多线图.在开始时没有数据,单击按钮后,模拟新值并向左"移动".使用"移位"动画移动.

当线条"填充"整个图形区域(这意味着所有x值都有y值)时会出现问题,然后以不同的方式对线条进行动画处理.看起来y值在曲线上是动画的,而不是向左滑动.

动画适用于两个轴:

svg.selectAll("g .x.axis")
  .transition()
  .duration(500)
  .ease("linear")
  .call(xAxis);
svg.selectAll("g .y.axis")
  .transition()
  .duration(500)
  .ease("linear")
  .call(yAxis);
Run Code Online (Sandbox Code Playgroud)

而不是线(这段代码帮了我很多)

svg.selectAll("g .city path")
  .data(processedData).transition().duration(500)
  .ease("linear")
  .attr("d", function(d, i) { return line(d.values); })
  .attr("transform", null);
Run Code Online (Sandbox Code Playgroud)

小提琴可以在这里访问.

感谢帮助.

animation linechart d3.js

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

添加项目后,Dictionary在ContainsKey上返回false

我有一个字典声明如下

IDictionary<string, object> _objectIds = new Dictionary<string, object>();
Run Code Online (Sandbox Code Playgroud)

我遇到了一些问题,它发现实例返回false作为ContainsKey方法的结果,从监视窗口我确定该项目在那里.所以我创建了辅助方法

private bool IdsContainsKey(string key)
{
  lock (syncObject)
  {
     lock (_objectIds)
     {
       if (_objectIds.ContainsKey(key))
         return true; // A
       if (_objectIds.ContainsKey(key))
         return true; // B
       return _objectIds.ContainsKey(key); // C
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的调试会话期间,当方法退出到位B时遇到这种情况,有时我对C返回true.有谁能够帮我?谢谢.

c# dictionary containskey

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