Я почти уверен, что правильно следую инструкциям по вводу своих действий и переходов:
ActionTypes.js
// @flow
import type Product from "../../models/Product";
type ActionNamesObject = {
[key: string]: { [key: string]: { [key: string]: string } }
};
export const Actions: ActionNamesObject = {
Product: {
Fetch: {
start: "PRODUCT_FETCH_START",
success: "PRODUCT_FETCH_SUCCESS"
}
}
};
export type ProductAction =
| { type: "PRODUCT_FETCH_START" }
| {
type: "PRODUCT_FETCH_SUCCESS",
products: Product[]
};
редуктор
// @flow
import type Product from "../../models/Product";
import type { ProductAction } from "../actions/ActionTypes";
import { Actions } from "../actions/ActionTypes";
type ProductState = {
+products: Product[]
};
const initialState = {
products: []
};
export default function productsReducer(
state: ProductState = initialState,
action: ProductAction . // LINE 16
): ProductState {
switch (action.type) {
case Actions.Product.Fetch.success:
return { ...state, products: action.products }; // ERROR HERE
default:
(action: empty); // ERROR HERE
return state;
}
}
Но я получаю ошибки потока, где я их пометил в файле редуктора.
Первая ошибка на products
: невозможно получить action.products, поскольку свойства свойств отсутствуют в типе объекта. Ссылаясь на строку 16.
Вторая ошибка на action
: невозможно привести действие к пустому, потому что тип объекта несовместим с пустым. Также ссылаемся на строку 16.
Что мне не хватает?