Javascript React prop类型模块映射未定义
我收到一个类型错误,表示“map”的属性未定义。刚刚切换到使用React 16的prop类型模块,我想知道我的代码中是否有语法问题或错误,因为我找不到如何在代码之外设置select函数。这适用于具有自己容器的输入类型的表单。对于select.js,我的代码是:Javascript React prop类型模块映射未定义,javascript,node.js,reactjs,select,react-proptypes,Javascript,Node.js,Reactjs,Select,React Proptypes,我收到一个类型错误,表示“map”的属性未定义。刚刚切换到使用React 16的prop类型模块,我想知道我的代码中是否有语法问题或错误,因为我找不到如何在代码之外设置select函数。这适用于具有自己容器的输入类型的表单。对于select.js,我的代码是: import React from 'react'; import PropTypes from 'prop-types'; const Select = (props) => ( <div className="f
import React from 'react';
import PropTypes from 'prop-types';
const Select = (props) => (
<div className="form-group">
<select
name={props.name}
value={props.selectedOption}
onChange={props.controlFunc}
className="form-select">
<option value="">{props.placeholder}</option>
{props.options.map(opt => {
return (
<option
key={opt}
value={opt}>{opt}</option>
);
})}
</select>
</div>
);
Select.propTypes = {
name: PropTypes.string.isRequired,
options: PropTypes.array.isRequired,
selectedOption: PropTypes.string,
controlFunc: PropTypes.func.isRequired,
placeholder: PropTypes.string
};
export default Select;
看起来您希望props.options是数组,但错误是options上没有.map属性,这意味着它可能不是数组 尝试console.logprops.options和console.logtypeof props.options,输出将帮助您诊断问题 如果props.option最终会有正确的数据,但不是一开始,请尝试使用props.options | |[].map而不是props.options.map
作为补充说明,PropTypes并不影响React应用程序的运行方式,它只是在开发应用程序时对道具执行输入验证。为组件编写默认道具,以避免与道具相关的异常
Select.defaultProps = {
options: [] // keep it as empty or give some default values
}
在选项数组中传递null还是未定义?