【发布时间】:2019-05-06 17:37:55
【问题描述】:
我正在上 React Native 的课程,然后使用 Flow 尝试纠正课程中的错误,因为讲师没有使用任何类型检查。
我在使用 Flow 时遇到了另一个错误,通过在互联网上的长时间搜索无法找到答案。我在同一行上遇到这两个错误。我不知道这些错误是什么意思。这让我很困惑,搜索 Flow 文档并没有为我服务,因为它根本没有解释这一点。
我正在使用带有核素和流量 0.78 的 Atom。
缺少 T 的类型注释。
和
缺少 S 的类型注释。
这是我标出错误的代码。
/* @flow */
import { ADD_PLACE, DELETE_PLACE, SELECT_PLACE, DESELECT_PLACE } from '../actions/actionTypes.js'
type State = {
places: Array<Object>,
selectedPlace: ?{
key: string,
name: string,
image: Image
}};
type Action = { type : string, placeName: string, placeKey: string};
const initialState = {
places: [],
selectedPlace: null
}
const reducer = (state : State = initialState, action : Action) => {
switch (action.type) {
case ADD_PLACE:
return {
...state,
places: state.places.concat({ <-- Error
key: String(Math.random()),
name: action.placeName,
image: {
uri: "https://cdn.newsapi.com.au/image/v1/f08d8ccc83fbc2d08529aea69890ad4d?width=1024"
}
})
};
case DELETE_PLACE:
return {
...state,
places: state.places.filter(place => {. <--Error
return state.selectedPlace && place.key !== state.selectedPlace.key;
}),
selectedPlace: null
};
case SELECT_PLACE:
return {
...state,
selectedPlace: state.places.find(place => {
return place.key == action.placeKey;
})
};
case DELETE_PLACE:
return {
...state,
selectedPlace: null
};
default:
return state;
}
};
export default reducer;
这些错误令人沮丧,而且毫无意义。我相信我不是唯一一个为此苦苦挣扎的人。可能还有其他人。
如果有人知道这个问题的答案。帮助将不胜感激。
另外,如果有人可以指出一些文档,将这些流错误转换为更有意义或更容易理解的东西,那将是一个很大的帮助,因为官方文档没有解释太多也没有太多示例学习。
如果有一些更明确的文档可以学习,那也会有很大帮助。
谢谢。
【问题讨论】:
标签: javascript react-native redux react-redux flowtype