0

我正在尝试使用 State 将输入更改为“年”时显示年份,但我遇到了问题。

const handleChange = (e, countMonth,countYear) =>{

      
  if(e.target.value === 'months'){
    setMonths(countMonth)

  } else if( e.target.value === 'year'){
    setMonths(countYear)
  
  }


}

当使用此地图方法单击年份时,我正在尝试显示不同的数据:

      <tbody>
        {
          months.map(({ date, count }, index) => (
          <tr key={index}>
            <td>{date}</td>
            <td>{count}</td>
          </tr>
        ))}
      </tbody>

我不断收到错误'TypeError: Cannot read property 'map' of undefined'

这是完整的沙盒代码:https ://codesandbox.io/s/wizardly-clarke-szge3?file=/src/data.js

4

1 回答 1

-1

在您的沙箱代码中,我尝试放置控制台日志,发现countYearundefined并且正在设置为months.

理想情况下,您应该countYear在将其设置为状态months[ ] 之前进行验证或修复根本else if( e.target.value === 'year' && countYear)原因countYearundefined

const handleChange = (e, countMonth,countYear) =>{
      
  if(e.target.value === 'months'){
    console.log('countMonth ', countMonth)
    setMonths(countMonth)

  } else if( e.target.value === 'year'){
    console.log('countYear ', countYear)
    setMonths(countYear)
  
  }
}
于 2021-04-21T05:22:29.110 回答