React 中的内联函数不是 运行
Inline function in React isn't running
我正在尝试将格式为 24 小时的时间字符串转换为 12 小时。为此,我创建了一个函数,该函数将重新格式化然后呈现它。但是,当我将像 <span>{times && this.renderTime(times.StartTime)}</span>
这样的内联函数放在正确的位置时,没有任何 运行s。
但是,当我将相同的功能放在测试按钮上时,它会 运行 并记录我新格式化的文本。例如,15:41
到 3:41 PM
。
renderTime = time => e => {
const hours = time.split(':')[0];
const minutes = time.split(':')[1];
let currentTime;
if (+hours === 0) currentTime = `12:${minutes} AM`;
else if (+hours < 10 && +hours > 0) currentTime = `${hours.split('')[1]}:${minutes} AM`;
else if (+hours <= 11 && +hours > 9) currentTime = `${hours}:${minutes} AM`;
else if (+hours === 12) currentTime = `12:${minutes} PM`;
else currentTime = `${hours-12}:${minutes} PM`;
console.log(currentTime);
return <p>{currentTime}</p>
}
为什么这个函数不会运行在文中
您的函数正在返回一个函数 - 更改
time => e =>
至
time =>
我正在尝试将格式为 24 小时的时间字符串转换为 12 小时。为此,我创建了一个函数,该函数将重新格式化然后呈现它。但是,当我将像 <span>{times && this.renderTime(times.StartTime)}</span>
这样的内联函数放在正确的位置时,没有任何 运行s。
但是,当我将相同的功能放在测试按钮上时,它会 运行 并记录我新格式化的文本。例如,15:41
到 3:41 PM
。
renderTime = time => e => {
const hours = time.split(':')[0];
const minutes = time.split(':')[1];
let currentTime;
if (+hours === 0) currentTime = `12:${minutes} AM`;
else if (+hours < 10 && +hours > 0) currentTime = `${hours.split('')[1]}:${minutes} AM`;
else if (+hours <= 11 && +hours > 9) currentTime = `${hours}:${minutes} AM`;
else if (+hours === 12) currentTime = `12:${minutes} PM`;
else currentTime = `${hours-12}:${minutes} PM`;
console.log(currentTime);
return <p>{currentTime}</p>
}
为什么这个函数不会运行在文中
您的函数正在返回一个函数 - 更改
time => e =>
至
time =>