Это старый вопрос, но теперь вы должны сделать это со следующим кодом:
dynamic expObj = new ExpandoObject();
expObj.Name = "James Kirk";
expObj.Number = 34;
// print the dynamically added properties
// enumerating over it exposes the Properties and Values as a KeyValuePair
foreach (KeyValuePair<string, object> kvp in expObj){
Console.WriteLine("{0} = {1} : Type: {2}", kvp.Key, kvp.Value, kvp.Value.GetType());
}
Результат будет выглядеть следующим образом:
Name = James Kirk: Тип: System.String
Число = 34: Тип: System.Int32
blockquote>
Отвечать на вопрос:
, Почему контейнерный компонент не может назвать асинхронный API и затем диспетчеризировать действия?
я сказал бы по крайней мере по двум причинам:
первой причиной является разделение проблем, это не задание action creator
, чтобы звонить api
и вернуть данные, Вам, должно быть, придется передать два аргумента Вашему action creator function
, action type
и payload
.
вторая причина состоит в том, потому что эти redux store
ожидает простого объекта с обязательным типом действия и дополнительно payload
(но здесь необходимо передать полезную нагрузку также).
создатель действия должен быть простым объектом как ниже:
function addTodo(text) {
return {
type: ADD_TODO,
text
}
}
И задание Redux-Thunk midleware
к dispache
результат Вашего api call
к соответствующему action
.