使用 reactjs 在 redux 中未定义调度
Dispatch is not defined in redux with reactjs
我想知道为什么单击 table 行仍然会出现未定义的调度错误,从而导致 Uncaught TypeError: dispatch is not a function
。我一直在关注此 post 以尝试解决问题,但到目前为止没有成功。
ListingTable.js
import Table from 'grommet/components/Table';
import React from 'react';
import {remove, add} from '../action/ListAction';
import {connect} from 'react-redux'
let createHandlers = function(dispatch) {
let onClick = function(item) {
dispatch(add(item)) <<== undefined!!!!
};
return {
onClick
};
};
export class ListingTable extends React.Component {
constructor(props) {
super(props);
this.handlers = createHandlers(this.props.dispatch);
}
render() {
return <Table>
<tbody>
{
this.props.data.map((item, key)=>
(
// Undefined Error!!!!
<tr onClick={()=> this.handlers.onClick(item)} key={key}>
<td>{item.user_name}</td>
<td>{item.name}</td>
<td>{item.url}</td>
</tr>
))
}
</tbody>
</Table>
}
}
export default connect()(ListingTable)
app.js
import { ListingTable } from './component/ListingTable';
import { Provider } from 'react-redux'
import {createStore} from 'redux';
import reducer from '../reducer/ListingReducer'
export default class Page extends React.Component {
render() {
<Provider store={createStore(reducer)}>
<ListingTable data={this.props.item}/>
</Provider>
}
}
我看到商店对象出现在调试控制台中,但它没有传递给 ListingTable 组件:
您正在导入未连接的组件。
在 class ListingTable
之前删除 export
class ListingTable extends React.Component {
constructor(props) {
super(props);
this.handlers = createHandlers(this.props.dispatch);
}
render() {
return <Table>
<tbody>
{
this.props.data.map((item, key)=>
(
// Undefined Error!!!!
<tr onClick={()=> this.handlers.onClick(item)} key={key}>
<td>{item.user_name}</td>
<td>{item.name}</td>
<td>{item.url}</td>
</tr>
))
}
</tbody>
</Table>
}
}
export default connect()(ListingTable)
app.js
import ListingTable from './component/ListingTable';
我想知道为什么单击 table 行仍然会出现未定义的调度错误,从而导致 Uncaught TypeError: dispatch is not a function
。我一直在关注此 post 以尝试解决问题,但到目前为止没有成功。
ListingTable.js
import Table from 'grommet/components/Table';
import React from 'react';
import {remove, add} from '../action/ListAction';
import {connect} from 'react-redux'
let createHandlers = function(dispatch) {
let onClick = function(item) {
dispatch(add(item)) <<== undefined!!!!
};
return {
onClick
};
};
export class ListingTable extends React.Component {
constructor(props) {
super(props);
this.handlers = createHandlers(this.props.dispatch);
}
render() {
return <Table>
<tbody>
{
this.props.data.map((item, key)=>
(
// Undefined Error!!!!
<tr onClick={()=> this.handlers.onClick(item)} key={key}>
<td>{item.user_name}</td>
<td>{item.name}</td>
<td>{item.url}</td>
</tr>
))
}
</tbody>
</Table>
}
}
export default connect()(ListingTable)
app.js
import { ListingTable } from './component/ListingTable';
import { Provider } from 'react-redux'
import {createStore} from 'redux';
import reducer from '../reducer/ListingReducer'
export default class Page extends React.Component {
render() {
<Provider store={createStore(reducer)}>
<ListingTable data={this.props.item}/>
</Provider>
}
}
我看到商店对象出现在调试控制台中,但它没有传递给 ListingTable 组件:
您正在导入未连接的组件。
在 class ListingTable
export
class ListingTable extends React.Component {
constructor(props) {
super(props);
this.handlers = createHandlers(this.props.dispatch);
}
render() {
return <Table>
<tbody>
{
this.props.data.map((item, key)=>
(
// Undefined Error!!!!
<tr onClick={()=> this.handlers.onClick(item)} key={key}>
<td>{item.user_name}</td>
<td>{item.name}</td>
<td>{item.url}</td>
</tr>
))
}
</tbody>
</Table>
}
}
export default connect()(ListingTable)
app.js
import ListingTable from './component/ListingTable';