我已经读过有关新更改的博客(有关警告的描述在哪里),所以我有一个问题:什么是编写不使用任何 Action 的纯组件的正确方法?

这是有此错误的示例

const Text = ({
    tagName = 'span',
    className = '',
    children = null,
    ...restProps
}) => {
    const Tag = tagName;

    return (
        <Tag {...restProps} className={className}>
            {children}
        </Tag>
    );
};

Text.defaultProps = {
    tagName: 'span',
    className: '',
    children: null,
};

export default Text;

如果我使用connect将Text连接到商店-我将遇到此错误,因为我没有什么要写在mapDispatchToProps函数中,并且根据docs:
“如果您不提供自己的mapDispatchToProps函数或充满 Action 创建者的对象,则默认的mapDispatchToProps实现只会将分派(dispatch)注入(inject)到组件的 Prop 中。”

所以我有一个选择:
to declare dispatch in props in dumb component and omit it in params in Text rendering
to write fake mapDispatchToProps function in connect

哪个变体更理想?

最佳答案

您没有从传递给Tag的 Prop 散布调度

const Text = ({
    tagName = 'span',
    className = '',
    children = null,
    dispatch,
    ...restProps
})

关于reactjs - 警告: Invalid value for prop `dispatch` on <span> tag,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46981270/

10-10 15:26