反应:作为道具的数组显示为未定义

Posted

技术标签:

【中文标题】反应:作为道具的数组显示为未定义【英文标题】:React: array as props shows as undefined 【发布时间】:2020-12-22 03:08:27 【问题描述】:

我正在尝试将名为 myitems 的数组作为道具传递给子组件,但我收到一条错误消息,指出 options 在子组件中未定义。不知道这里发生了什么。任何帮助将不胜感激。

子组件:

import React from 'react';

const Dropdown = (className, options) => 

    return (
        <>
            <select className=className>
                options.map((el,i) => (<option key=i>el.type</option>))
            </select>
        </>
    )


export default Dropdown;

父组件:

import React from 'react';
import Dropdown from './Dropdown'

const BudgetInput = ( descValue, budgetValue, onDescChange ) => 


    const myItems = [ type: '+' ,  type: '-' ];

    return (
        <>
            <Dropdown 
                className="add__type"
                options=myItems
            />
            <input 
                type="text" 
                className="add__description" 
                placeholder="Add description" 
                value=descValue
                onChange=onDescChange 
            />
            <input 
                type="number" 
                className="add__value" 
                placeholder="Value" 
                value=budgetValue
                //onChange=
            />
            <Dropdown
                className="add__category"
            />
            <button onClick=handleInput>Enter</button>
        </>
    )


export default BudgetInput;

【问题讨论】:

【参考方案1】:

您没有将 options 属性传递给 second Dropdown 实例,这就是您收到错误的原因

<Dropdown
  className="add__category"
/>

【讨论】:

以上是关于反应:作为道具的数组显示为未定义的主要内容,如果未能解决你的问题,请参考以下文章

VueJS路由器查看反应道具未定义

在功能性反应组件中获取未定义的道具

如何在 AngularJS 中为未定义的表达式值显示占位符?

作为对象的 Vue 道具的反应性

为什么数组索引未定义为未定义?

使用 HOC 可拖动元素反应 DnD 引发无法设置未定义错误的属性“道具”