You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:54:01