[ant-design/ant-design-pro]Help,子组件如何调用父组件的dispatch方法?

2024-08-29 744 views
0

我需要在表格(Table)上面执行写数据的操作: 下面写法说 dispatch 未定义。 我应该怎么传递dispatch方法?

或者我怎么 把父组件的方法传递到 columns

const columns = [
  {
    title: '内容',
    dataIndex: 'detail',
    render: (text, record) => {
    const handleSubmit = value => {
        const { dispatch } = this.props;
        dispatch({
          type: 'news/fetch',
        });
      }
return (
  <Search
            placeholder="请输入摘要..."
            enterButton="提交"
            size="default"
            onSearch={value =>{
              handleSubmit(value)}
            }
     />
)
}
},
]

回答

9

不推荐这种用法。你为什么要这么干

1

就是想在表格里面做复杂数据操作,对表格的文章评论和打分。我的表格使用的你们StandardTable,我在父组件里面写了:

handleSubmit = (value,links) =>{
    const { dispatch } = this.props;
    dispatch({
      type: 'newsdjk/fetch',
      param:{
        value:value,
        links:links,
      }
    });
  }

我不知道怎么把这个函数,传递给columns 看了一下ant design的 table 文档里面没有这种demo 0607

1

使用 columns render 调用 this.props.dispatch. 先用 connent 一下 table 类

7

不是很懂...

0

dva了解一下

1

你们的回答都好精简...

2

因为这里主要是解决 bug 提出需求的。不是互助的地方。会给一个方案 然后关掉你的 issue。你可以 google

9

我是用一个函数动态生成columns,把需要调用的方法当参数传给columns

function getColumns(dispatch){ return [{ .... render(r,r){ dispatch(...) } }] }

4

。。。