React新手编写显示星期几标题功能时遇toDayString不是函数报错
报错原因
- 原生JavaScript的Date对象不存在
toDayString()方法,这是触发toDayString is not a function报错的直接原因。 - 你当前使用的
getDay()方法返回值是0-6的数字(0对应周日,1对应周一,以此类推),直接输出只会显示数字,无法得到星期的文本名称。
修复后完整代码
import React from 'react'; const HelloDay = () => { const showdate = new Date(); // 定义星期英文名称数组,顺序和getDay返回值一一对应 const weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; const todayName = weekDays[showdate.getDay()]; return ( <div> <h1>Hello {todayName}!</h1> </div> ); }; export default HelloDay;
代码说明
- 新增了
weekDays数组,用getDay()返回的数字作为索引直接获取对应的星期文本名称,如果你需要显示中文星期,把数组内容替换为['周日', '周一', '周二', '周三', '周四', '周五', '周六']即可。 - 移除了不存在的
toDayString()调用,删除了没有实际作用的无效<top>标签。 - 拼接后输出的格式完全匹配你需要的
Hello Monday!样式。
如果你不想手动维护星期数组,也可以使用JS内置的国际化API直接获取星期名称,替换获取todayName的逻辑即可:
// 获取英文星期全称 const todayName = showdate.toLocaleDateString('en-US', { weekday: 'long' }) // 获取中文星期全称 const todayName = showdate.toLocaleDateString('zh-CN', { weekday: 'long' })
内容的提问来源于stack exchange,提问作者Hilma Bergh
相关产品推荐
相关产品推荐

