Проблема не в том, что магазин был пустым объектом. Я не мог отправить действие из-за глупой ошибки ... Редуктор, на который я пытался отправить данные, не был частью combinedReducers()
, и поэтому никогда не получал действие.
Вам придется копировать данные (ковариантны только массивы ссылочного типа), но мы можем попытаться сделать это эффективно; Кажется, работает Buffer.BlockCopy
:
sbyte[] signed = { -2, -1, 0, 1, 2 };
byte[] unsigned = new byte[signed.Length];
Buffer.BlockCopy(signed, 0, unsigned, 0, signed.Length);
Если это был ссылочный тип, вы можете просто привести ссылку без дублирования массива:
Foo[] arr = { new Foo(), new Foo() };
IFoo[] iarr = (IFoo[])arr;
Console.WriteLine(ReferenceEquals(arr, iarr)); // true
Если вы используете .NET 3.5+, вы можете использовать следующее:
byte[] dest = Array.ConvertAll(sbyteArray, (a) => (byte)a);
Что, я думаю, эффективно копирует все данные.
Обратите внимание, что эта функция также есть в .NET 2.0, но вместо этого вам придется использовать анонимный метод.