属性类型isRequired未定义

时间:2018-10-09 10:48:01

标签: reactjs

我正在学习reactjs,我想使用PropTypes,在某些示例中,我看到了类似PropTypes.string.isRequired的东西。但是,如果我编写此代码,则会收到isRequired未定义的错误。

    import React from "react";
import PropTypes from "prop-type";
import classnames from "classnames";

const TextFieldGroup = ({ field, value, label, error, type, onChange }) => {
  return (
    <div className={classnames("form-group", { "has-error": error })}>
      <label className="control-label">{label}</label>
      <input
        value={value}
        onChange={onChange}
        type={type}
        name={field}
        className="form-control"
      />
      {error && <span className="help-block">{error}</span>}
    </div>
  );
};

TextFieldGroup.propTypes = {
  field: PropTypes.string.isRequired,
  value: PropTypes.string.isRequired,
  label: PropTypes.string.isRequired,
  error: PropTypes.string,
  type: PropTypes.string.isRequired,
  onChange: PropTypes.func.isRequired,
  checkUserExists: PropTypes.func.isRequired
};

TextFieldGroup.defaultProps = {
  type: "text"
};

export default TextFieldGroup;

我希望有人能帮助您,谢谢!

1 个答案:

答案 0 :(得分:-1)

它是道具类型,而不是道具类型。您正在导入prop-type,而不是prop-type。正确的模块是道具类型

因此您需要安装

  npm i —save prop-types

然后将其导入

 import PropTypes from "prop-types"