javascript - 类型错误 : dispatch is not a function in nested component

标签 javascript reactjs redux

尝试从嵌套组件内的按钮分派(dispatch)删除事件。

我像这样将调度作为属性从 App.js 传递给组件

render() {
        const {files, isFetching, dispatch} = this.props;
        const isEmpty = files.length === 0;
        return (
            <div>
                <h1>Uploadr</h1>
                {isEmpty
                    ? (isFetching ? <h2>Loading...</h2> : <h2>No files.</h2>)
                    : <div style={{opacity: isFetching ? 0.5 : 1}}>
                        <Files files={files} dispatch={dispatch}/>
                    </div>
                }
            </div>
        )
    }

在嵌套组件中,我通过 onclick 属性调用 dispatch

const Files = ({files, dispatch}) => (
    <ul>
        {files.map((file, i) =>
            <li key={i}>{file.name}
                <button onClick={dispatch(deleteFileById(file.id))}>Delete</button>
            </li>
        )}
    </ul>
);

Files.propTypes = {
    files: PropTypes.array.isRequired,
    dispatch: PropTypes.func.isRequired
};

export default Files

这是被调用的方法

export const deleteFileById = (dispatch, fileId) => {
    dispatch(deleteFile);
    return fetch(`/api/files/${fileId}`, {method : 'delete'})
        .then(dispatch(fetchFiles(dispatch)))
};

我尝试执行 this.props.dispatch 但这也不起作用。

有什么想法吗?

最佳答案

您的方法 deleteFileById 似乎需要调度程序作为参数。 以下调整对您有用吗?

<button onClick={() => (deleteFileById(dispatch, file.id))}>Delete</button>

关于javascript - 类型错误 : dispatch is not a function in nested component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51884944/

相关文章:

angular - 从 Angular 服务通过管道传输时,rxjs catchError 不起作用

javascript - HTML Canvas 的measureText 还很遥远

javascript - 无法读取未定义的属性 'string' | React.PropTypes | React.PropTypes | LayoutPropTypes.js

javascript - reduceReducers() 如何工作?

reactjs - 在 ReactJS 中封装第三方 JS 库

javascript - 跨共享组件的 React js 和 PropTypes 重复

javascript - TypeError : this. props.weather 未定义

javascript - Select2 小部件将 param.term 空格发送到 ajax 作为 "+"而不是 %20

javascript - 我如何使用 jQuery 的 .each() 来替换文本/正则表达式?

javascript - 在 Mapbox gl 中添加固定方 block ?