Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React prop类型模块映射未定义_Javascript_Node.js_Reactjs_Select_React Proptypes - Fatal编程技术网

Javascript React prop类型模块映射未定义

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

我收到一个类型错误,表示“map”的属性未定义。刚刚切换到使用React 16的prop类型模块,我想知道我的代码中是否有语法问题或错误,因为我找不到如何在代码之外设置select函数。这适用于具有自己容器的输入类型的表单。对于select.js,我的代码是:

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还是未定义?