开发者问题收集

TypeError:无法获取未定义或空引用的属性“text”

2019-07-22
534
import React from 'react';

const seasonConfig = {
    summer: {
        text: 'lets hit the beach',
        iconName: 'sun'
    },
    winter: {
        text: 'Burr it is cold',
        iconName: 'snowflake'
    }
};

const getSeason = (lat, month) => {
    if (month > 2 && month < 9){
        return lat > 0 ? 'Summer' : 'Winter';
    } else {
        return lat > 0 ? 'Winter' : 'Summer';
    }
};

// Ternary Expression 
const SeasonsDisplay = props => {
    const season = getSeason(props.lat, new Date().getMonth());
    const {text, iconName } = seasonConfig[season];

    return (
        <div>
            <i className={`${iconName} icon`} />
                {text}
            <i className={`${iconName} icon`} />
        </div>
    ); 
};

export default SeasonsDisplay;

我尝试将选项提取到 ReactJS 中的配置对象,该如何解决? 错误:TypeError:无法获取未定义或空引用的属性“text”

2个回答

seasonConfig[season] 要求 season 为小写 summerwinter ,但 getSeason 返回的是标题大小写 'Summer''Winter' 。如果您让 getSeason 返回小写字符串,这应该可以解决您的问题。

helloitsjoe
2019-07-22
const getSeason = (lat, month) => {
  if (month > 2 && month < 9) {
    return lat > 0 ? "summer" : "winter";
  } else {
    return lat > 0 ? "winter" : "summer";
  }
};

seasonConfig[season] 需要较小的情况 - “夏季”和“冬季”

Kannan G
2019-07-22