#reactjs
#reactjs
Вопрос:
У меня есть компонент react для заголовка моего веб-сайта, который гласит (Доброе утро, я Джон, спасибо, что посетили мой веб-сайт, пожалуйста, свяжитесь со мной, если вам нужна дополнительная информация).
в первой строке написано «Доброе утро», я пытаюсь изменить его в зависимости от текущего времени пользователя, чтобы сказать «добрый день» и «добрый вечер». У меня уже есть код ниже, но я не уверен, как его реализовать здесь, просто изменив это единственное слово, сохранив остальную часть моего абзаца
let today = new Date()
let curHr = today.getHours()
if (curHr < 12) {
<h1> Good morning <h1>
} else if (curHr < 18) {
<h1> Good afteroon <h1>
} else {
<h1> Good evening <h1>
}
import React, { Component } from "react";
class MainHeader extends Component {
render() {
return (
<div className="my_header">
<h3> Good morning, I'm john Thank you for visiting my website, please contact me if you need more information </h3>
</div>
);
}
}
export default MainHeader;
Ответ №1:
Вы могли бы обновить свой код для вызова метода из компонента React следующим образом:
class MainHeader extends Component {
getTimeOfDay() {
// your conditional checks here
if (Math.floor(Math.random() * 1000) > 500) {
return "morning";
}
return "afternoon";
}
render() {
return (
<div className="my_header">
<h3> Good {this.getTimeOfDay()}, I'm john Thank you for visiting my website, please contact me if you need more information </h3>
</div>
);
}
}
Ответ №2:
Вы можете определить приведенный выше код в повторно используемую функцию, а затем просто создать новое приветствие для каждого повторного запроса. Затем просто отобразите в рендере с фигурными скобками.
function generateGreeting(){
let today = new Date()
let curHr = today.getHours()
if (curHr < 12) {
return 'Good morning'
} else if (curHr < 18) {
return 'Good afteroon'
} else {
return 'Good evening'
}
}
import React, { Component } from "react";
class MainHeader extends Component {
render() {
const greeting = generateGreeting();
return (
<div className="my_header">
<h3> <h1>{greeting}</h1>, I'm john Thank you for visiting my website, please contact me if you need more information </h3>
</div>
);
}
}
export default MainHeader;
Комментарии:
1. Большое вам всем спасибо, большое спасибо 🙂
Ответ №3:
import React, { Component } from "react";
let today = new Date()
let curHr = today.getHours()
class MainHeader extends Component {
render() {
let headline = "Good evening";
if(curHr < 12) {
headline = "Good morning";
}
if(curHr > 12 amp;amp; curHr < 18) {
headline = "Good afternoon";
}
return (
<div className="my_header">
<h1>{headline}</h1>
<h3>I'm john Thank you for visiting my website, please contact me if you need more information </h3>
</div>
);
}
}
export default MainHeader;
Ответ №4:
Попробуйте с этим:
function getGreetings() {
let today = new Date()
let curHr = today.getHours()
if (curHr < 12) {
return <h1> Good morning <h1>
} else if (curHr < 18) {
return <h1> Good afteroon <h1>
} else {
return <h1> Good evening <h1>
}
И в вашей функции визуализации:
render() {
return (
<div className="my_header">
<h3> {getGreetings ()}, I'm john Thank you for visiting my website, please contact me if you need more information </h3>
</div>)
Ответ №5:
const today = new Date();
const curHr = today.getHours();
let message;
if (curHr < 12) {
message = <h1> Good morning </h1>;
} else if (curHr < 18) {
message = <h1> Good afteroon </h1>;
} else {
message = <h1> Good evening </h1>;
}
class MainHeader extends React.Component {
render() {
return (
<div className="my_header">
{message}
<h3>I'm john Thank you for visiting my website, please contact me if you need more information </h3>
</div>
)
}
}