【问题标题】:this.props is not a function redux from parent to child componentthis.props 不是从父组件到子组件的函数 redux
【发布时间】:2019-05-18 04:24:52
【问题描述】:

您好,我在调用子组件中的操作时遇到问题。

但是,我可以自己运行 CompanyForm 组件并且它会工作,但是当被视为子组件时,我会遇到错误:

未捕获的类型错误:this.props.createCompany 不是函数

公司.js

render() {
    return (
        <div>
            <CompanyForm/>
        </div>
    );
}

CompanyForm.js

import { createCompany } from "../../actions/companyAction";
export class CompanyForm extends Component {
constructor(props) {
    super(props);

    this.state = {
        companyName: '',
        street1: '',
        street2: '',
        city: '',
        state: '',
        zipcode: ''
    };

    this.handleSubmit = this.handleSubmit.bind(this);
}


handleSubmit(event) {
    event.preventDefault();
    const company = {
        ...
    };
    console.log(company);
    this.props.createCompany(company)

}
}
export default connect(null, { createCompany })(CompanyForm);

companyActions.js

export const createCompany = (companyData) => dispatch => {
console.log('CREATE_COMPANY: ', companyData);
fetch('api/Company/Create', {
    ...
)};

【问题讨论】:

  • @Kabbany:哎呀,你是对的。我在脑海中切换了方法/道具。
  • 我认为您的文件名中有错字。是companyActions.js 还是companyAction.js
  • @Kabbany 该文件绝对命名为 companyAction.js。这真是一个奇怪的错误......另外,如果我启用了CompanyForm.propTypes = { createCompany: PropTypes.func.isRequired }; 然后我在&lt;CompanyForm /&gt; 中收到警告,说明does not have required attribute createCompany
  • @Kabbany 好的...所以我想出了如何解决我的问题,但我认为这不是正确的方法...? &lt;CompanyForm createCompany={this.props.createCompany}/&gt; 在我的公司组件中,我调用了export default connect(null, {createCompany})(Companies); 有没有更好的方法来做到这一点?好像有点多余
  • 你能提供你如何调用handleSubmit的代码吗?

标签: javascript reactjs redux components


【解决方案1】:

将不带花括号的子组件导入父组件 即

import CompanyForm from '../component/companyForm/CompanyForm';

不是

import { CompanyForm } from '../component/companyForm/CompanyForm';

【讨论】:

    【解决方案2】:

    您正在导出组件和连接的组件,您必须确保导入正确的组件。在这种情况下,正确的是连接组件。

    【讨论】:

      猜你喜欢
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多