Function.mapStateToProps [as mapToProps]
37 | const mapStateToProps = (state: AppState) => ({
> 38 | errorMessage: state.errorRedux.errorMessage,
39 | error: state.errorRedux.error,
40 | })
我不知道问题是什么。它不应该监听错误,因为我选择有条件地呈现消息。
errormessage:string undefined null
设置为no成功。错误消息:“[interface”]
失败。errorMessage?:String
我认为问题可能出在扩展ErrorHandlerProps接口的某个地方,但我已经扩展了MapStateToProps?import { Dispatch, Action } from "redux"
import { connect } from "react-redux"
import { AppState } from "reducers"
import { showError } from "data/error_handler"
class ErrorHandler extends React.Component<
ReturnType<typeof mapStateToProps> & ReturnType<typeof mapDispatchToProps>
> {
public render() {
const { onShowError, error, errorMessage } = this.props
let showTheError =
this.props.error === true ? (
<Snackbar
open={error}
message={errorMessage}
autoHideDuration={5000}
/>
) : null
return (
<div>
<RaisedButton onClick={onShowError} label="Toggle ErrorHandler" />
{showTheError}
</div>
)
}
}
const mapStateToProps = (state: AppState) => ({
errorMessage: state.errorRedux.errorMessage,
error: state.errorRedux.error,
})
const mapDispatchToProps = (dispatch: Dispatch<Action>) => {
return {
onShowError: () => dispatch(showError()),
}
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(ErrorHandler)
data/interfaces.ts
export interface ErrorHandlerProps {
error: boolean
errorMessage: string
}
import { ErrorHandlerProps, ActionTypes } from "./"
const initialState: ErrorHandlerProps = {
error: false,
errorMessage: "",
}
export default (
state: ErrorHandlerProps = initialState,
action: ActionTypes
) => {
switch (action.type) {
case "SHOW_ERROR":
return {
...state,
}
default:
return state
}
}
import { reducer as errorHandler, ErrorHandlerProps } from "data/error_handler"
const appReducer = combineReducers({
errorHandler
} as any)
export type AppState = {
errorRedux: ErrorHandlerProps
}
import { createStore, applyMiddleware, compose } from "redux"
import { routerMiddleware } from "react-router-redux"
import thunk from "redux-thunk"
import rootReducer, { AppState } from "reducers"
const initialState = {}
const middleware = [thunk, routerMiddleware(history)]
const composedEnhancers = compose(applyMiddleware(...middleware), ...enhancers)
const store = createStore(rootReducer, initialState, composedEnhancers)
export default store
export const getState = () => store.getState() as AppState
如果我们能看到你是如何创建你的商店的,那就更容易了。
通常在使用CommineDeducers
时会出现此问题,因为它创建了一个reducers对象,而这是MapStateToprops
接收的内容,而不是直接接收状态。
import { createStore, combineReducers } from "redux";
import testReducer from "./reducer";
import testReducer2 from "./reducer2";
// ----
// using combine reducers will make the state in mapStateToProps to be an object of all the reducers combined, so you have to access it like state.testReducer.value or state.testReducer2.value
const rootReducer = combineReducers({
testReducer,
testReducer2
});
// ----
// ----
// while passing a reducer directly will not have the same effect and the state will be accessible like state.value in mapStateToProps
const rootReducer = testReducer;
// ----
const store = createStore(rootReducer);
export default store;
请参见以下沙箱:https://codesandbox.io/s/k3ojkqxy57
如果函数在组件中,那么一切都很好。如果我把它单独取出并导出到一个组件中,那么我会得到一个错误TypeError:不能读取未定义的属性(读取'reduce')
问题内容: 我试图在ajax回调从REST api接收数据后设置组件的setState。这是我的组件构造函数代码 然后,我有一个如下所示的方法。 现在,这是我执行getAJAX请求的getPosts函数。 我想设置状态,但出现以下错误。 不太清楚是什么原因造成的。如果有人指出我正确的方向,那将真的很有帮助。提前致谢。 问题答案: 还绑定回调函数,以便回调内部指向React Component的上下
我试图使用node.js express web服务器中的@tensorflow/tfjs-node模块。但是,我得到了下面的错误。我不明白为什么我会出现这个错误。我刚刚在node.js服务器中添加了1行代码。我使用“npm install@tensorflow/tfjs-node”完成的安装。可能的问题是什么? null 先谢谢你, var nonMaxSuppressionV3Impl=tf.
我正在尝试联系许多对许多,在两个模式“培训和培训课程”,所以我做了第三个模式“课程”,以尝试关系1对许多。但是我得到了一个错误: null TypeError:无法读取对象上未定义得属性“belongsto”。(c:UsersDellDownloadsGraphql-12.18.2020Graphql-12.18.2020Graphql-12.18.2020ServerAppDatabaseDat
上面的函数返回一个类似“failed”的字符串。但是,当我尝试在其上运行then函数时,它将返回 并且光标指示在之后和。 下面是完整的功能: 更新 下面是函数 我确信将导致一个“failed”字符串。没别的了。
无法显示Barchart。 我有一个包含数据的表,它是可拖动的。在表格旁边我有一个两个dropbox被拖动的表格中的数据可以被拖动到框中。当将数据拖动到框中时,应该会显示条形图。 这是我的家。component.html 这是我的家。Component.TS 这是我的酒吧 在拖放数据时,特定的图表必须显示在Dropbox上。