 
			
				19.07.2024, 10:15
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.03.2023 
					
					
					
						Сообщений: 86
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				React и изменение текса
			 
			
		
		
		
		Может кто нибудь сказать как сделать так, что бы после отображения  'Постоянно учусь' удалилось только 'учусь' и написалось 'ленюсь' 
import { useState, useEffect } from 'react';
import { Container, Row, Col } from 'react-bootstrap';
export const Banner = () => {
  const toRotate = ['Веб-разработчик', 'Постоянно учусь', 'Постоянно ленюсь'];
  const [loopNum, setLoopNum] = useState(0);
  const [text, setText] = useState('');
  const [delta, setDelta] = useState(150 - Math.random() * 150);
  const period = 1000;
  const [isDeleting, setIsDeleting] = useState(false);
  useEffect(() => {
    const ticker = setInterval(tick, delta);
    return () => clearInterval(ticker);
  }, [text]);
  const tick = () => {
    const i = loopNum % toRotate.length;
    const fullText = toRotate[i];
    const updateText = isDeleting
      ? fullText.substring(0, text.length - 1)
      : fullText.substring(0, text.length + 1);
    setText(updateText);
    if (isDeleting) {
      setDelta((prevDelta) => prevDelta / 2);
    }
    if (!isDeleting && updateText === fullText) {
      setIsDeleting(true);
      setDelta(period);
    } else if (isDeleting && updateText === '') {
      setIsDeleting(false);
      setDelta(500);
      setLoopNum((prevLoopNum) => prevLoopNum + 1);
    }
  };
  return (
    <section className="banner">
      <Container>
        <Row>
          <Col xs={12} md={6} xl={7}>
            <span>Добро пожаловать</span>
            <h1>{`Привет, я Денис ${text}`}</h1>
            <p>
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Facilis
              fugiat consequuntur amet explicabo delectus voluptatem libero eum
              impedit! Saepe vel, impedit voluptatibus dolores ipsum enim
              placeat deleniti numquam dolor nostrum.
            </p>
          </Col>
        </Row>
      </Container>
    </section>
  );
};
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось deniscikasov@gmail.com, 19.07.2024 в 11:17.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				22.07.2024, 09:59
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		deniscikasov@gmail.com, что-то ты там так накрутил...    
Что в итоге хотел сделать?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				31.07.2024, 19:18
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.03.2023 
					
					
					
						Сообщений: 86
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		https://codedamn.com/playground/twg0R52ErCm39iGyoTwct надеюсь удастся посмотреть код. Мне нужно что бы при удалении 1 индекса массива toRotate(10 стр.) удалялось только 'учусь' и отобразилось 'ленюсь'  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось deniscikasov@gmail.com, 31.07.2024 в 19:20.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.08.2024, 09:14
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от deniscikasov@gmail.com
			
		
	 | 
 
	| 
		Мне нужно что бы при удалении 1 индекса массива toRotate(10 стр.) удалялось только 'учусь' и отобразилось 'ленюсь'
	 | 
 
	
 
 Я пока ничего не понял...    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.08.2024, 10:21
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.03.2023 
					
					
					
						Сообщений: 86
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Вот смотри. Если откроешь площадку для React - что я скинул выше. Там увидишь как меняются слова. Появилось слово Веб-разработчик, потом оно удалилось и вместо него появилось Постоянно учусь и как бы сделать так, что бы Постоянно учусь удалилось не полностью, а только слово Учусь и вместо него написалось Ленюсь. И всё по циклу пошло заново 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.08.2024, 11:48
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от deniscikasov@gmail.com
			
		
	 | 
 
	| 
		Появилось слово Веб-разработчик, потом оно удалилось и вместо него появилось Постоянно учусь и как бы сделать так, что бы Постоянно учусь удалилось не полностью, а только слово Учусь и вместо него написалось Ленюсь. И всё по циклу пошло заново
	 | 
 
	
 
 Как вариант - сделать так. В консоли будет видно что рендерится только "учусь" и "ленюсь"... 
Правда в StrictMode они будут повторяться дважды... Но это уже другая история.   
import {StrictMode, useEffect, useState, memo} from 'react';
import ReactDOM from 'react-dom/client';
//
const Word = memo(({wrd}) => {
  console.log('Word', wrd)
  return (
    <span>{wrd} </span>
  )
})
//
const arr = ['Веб-разработчик', 'Постоянно учусь', 'Постоянно ленюсь']
//
function App(props) {
  const [ind, setInd] = useState(0)
  useEffect(_ => {
    const t = setInterval(_ => setInd(v => (v + 1) % arr.length) ,1000)
    return _ => clearInterval(t)
  })
  return (
    <section>
      <p>Привет, я Денис, {arr[ind].split(' ').map(v => <Word key={v} wrd={v} />)}
      </p>
    </section>
  );
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <StrictMode>
    <App />
  </StrictMode>,
);
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.08.2024, 12:06
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Или вот так, если "слов" именно два... 
import {StrictMode, useEffect, useState, memo} from 'react';
import ReactDOM from 'react-dom/client';
//
const Word = memo(({wrd}) => {
  console.log('Word', wrd)
  return (
    <span>{wrd} </span>
  )
})
//
const arr = ['Веб-разработчик', 'Постоянно учусь', 'Постоянно ленюсь']
//
function App(props) {
  const [ind, setInd] = useState(0)
  useEffect(_ => {
    const t = setInterval(_ => setInd(v => (v + 1) % (arr.length)) ,1000)
    return _ => clearInterval(t)
  })
  const a = arr[ind].split(' ')
  return (
    <section>
      <p>Привет, я Денис, <Word wrd={a[0]} /> {a[1] && <Word wrd={a[1]} />}
      </p>
    </section>
  );
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <StrictMode>
    <App />
  </StrictMode>,
);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.08.2024, 17:20
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.03.2023 
					
					
					
						Сообщений: 86
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Спасибо. + поставить не могу, т.к нужно кому то другому сначала поставить 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |