Size: a a a

React — русскоговорящее сообщество

2020 October 22

I

I0bSTeR in React — русскоговорящее сообщество
ты пишешь функциями или классом
источник

AG

Asan Glay in React — русскоговорящее сообщество
классом
источник

IN

Igor N in React — русскоговорящее сообщество
I0bSTeR
ты пишешь функциями или классом
setState это ж класс
источник

I

I0bSTeR in React — русскоговорящее сообщество
вызываемый?
источник

VR

Victor Rusakovich in React — русскоговорящее сообщество
Asan Glay
пожалуйста скажите как работает setState?
асинхронно
источник

AG

Asan Glay in React — русскоговорящее сообщество
что он принимает
источник

AG

Asan Glay in React — русскоговорящее сообщество
что происходит потом
источник

I

I0bSTeR in React — русскоговорящее сообщество
Что делает вызов useState? Он объявляет «переменную состояния». Мы называли переменную count, но могли дать ей любое имя, хоть банан. Таким образом мы можем «сохранить» некоторые значения между вызовами функции. useState это новый способ использовать те же возможности, что даёт this.state в классах. Обычно переменные «исчезают» при выходе из функции. К переменным состояния это не относится, потому что их сохраняет React.

Какие аргументы передавать useState? Единственный аргумент useState это исходное состояние. В отличие от случая с классами, состояние может быть и не объектом, а строкой или числом, если нам так удобно. Поскольку в нашем примере отслеживается количество сделанных пользователем кликов, мы передаём 0 в качестве исходного значения переменной. (Если нам нужно было бы хранить два разных значения в состоянии, то пришлось бы вызвать useState() дважды.)

Что возвращается из useState? Вызов useState вернёт пару значений: текущее состояние и функцию, обновляющую состояние. Поэтому мы пишем const [count, setCount] = useState(). Это похоже на this.state.count и this.setState в классах, с той лишь разницей, что сейчас мы принимаем их сразу в паре. Если вам незнаком использованный синтаксис, мы вернёмся к нему ближе к концу страницы.
источник

IN

Igor N in React — русскоговорящее сообщество
Asan Glay
что происходит потом
доку почитать в лом?
источник

DM

Daniel Mednikov in React — русскоговорящее сообщество
Да это все в доке написано, это как минимум не вежливо задавать столько вопросов, которые лежат на суперповерхости.
источник

I

I0bSTeR in React — русскоговорящее сообщество
кажись он новый
я сам написал проект на классах
и до сих пор не перешел на хуки говорят удобно
источник

Ф

Ферэль in React — русскоговорящее сообщество
на 38 уроке не прописывается текст в textarea, но добавляется. ошибку не выдает. Что делать?
источник

DM

Daniel Mednikov in React — русскоговорящее сообщество
Ферэль
на 38 уроке не прописывается текст в textarea, но добавляется. ошибку не выдает. Что делать?
Я в чате новенький, мб это всем очевидно, но каком 38 уроке.

Гуль
источник

I

I0bSTeR in React — русскоговорящее сообщество
Ферэль
на 38 уроке не прописывается текст в textarea, но добавляется. ошибку не выдает. Что делать?
Канеки
источник

М

Макс in React — русскоговорящее сообщество
Очевидно, что самурайский урок)
источник

I

I0bSTeR in React — русскоговорящее сообщество
Ферэль
на 38 уроке не прописывается текст в textarea, но добавляется. ошибку не выдает. Что делать?
ставишь как value? или внутри tag?
источник

AG

Asan Glay in React — русскоговорящее сообщество
I0bSTeR
Что делает вызов useState? Он объявляет «переменную состояния». Мы называли переменную count, но могли дать ей любое имя, хоть банан. Таким образом мы можем «сохранить» некоторые значения между вызовами функции. useState это новый способ использовать те же возможности, что даёт this.state в классах. Обычно переменные «исчезают» при выходе из функции. К переменным состояния это не относится, потому что их сохраняет React.

Какие аргументы передавать useState? Единственный аргумент useState это исходное состояние. В отличие от случая с классами, состояние может быть и не объектом, а строкой или числом, если нам так удобно. Поскольку в нашем примере отслеживается количество сделанных пользователем кликов, мы передаём 0 в качестве исходного значения переменной. (Если нам нужно было бы хранить два разных значения в состоянии, то пришлось бы вызвать useState() дважды.)

Что возвращается из useState? Вызов useState вернёт пару значений: текущее состояние и функцию, обновляющую состояние. Поэтому мы пишем const [count, setCount] = useState(). Это похоже на this.state.count и this.setState в классах, с той лишь разницей, что сейчас мы принимаем их сразу в паре. Если вам незнаком использованный синтаксис, мы вернёмся к нему ближе к концу страницы.
спасибо
источник

YZ

Yury Zhuk in React — русскоговорящее сообщество
Ферэль
на 38 уроке не прописывается текст в textarea, но добавляется. ошибку не выдает. Что делать?
там на 17 строке опечатка в 3-м слове
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
Всем привет,есть компонент на котором отображается график пульса юзера в реал-тайме. При открытии компонента я открываю соединение с сокетом и записываю последние сообщения от сокета в состояние и эти данные отображаются на графике,когда страница закрывается мы должны разорвать соединение с сокетом.

Основная логика работала хорошо без useEffect,но что бы сокет открывался и закрывался по состоянию компонента я добавил хук и теперь у меня возникли проблемы с записью данных в стейт

Сокет открывается только при обновлении страницы,и когда данные приходят в компонент графика обновляется каждый раз когда записывает новые значения,место того что бы просто добавить точку без лишних рендеров и отобразить.
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
import React, { useState, useEffect } from "react";
import { useTheme } from "@material-ui/core/styles";
import {
 LineChart,
 Line,
 XAxis,
 YAxis,
 Label,
 ResponsiveContainer,
 Tooltip,
} from "recharts";
import Title from "./TittleNav";
// import { useForkRef } from "@material-ui/core";

let ws = new WebSocket("wss://elepsio.herokuapp.com/");
export default function Chart() {
 const theme = useTheme();

 useEffect(() => {
   ws.onopen = () => console.log("ws opened");
   ws.onclose = () => console.log("ws closed");

   return () => {
     ws.close();
   };
 }, []);

 const [barData, setBarData] = useState({
   data: [
     {
       time: "18:02",
       pulse: 87,
     },
   ],
 });
 ws.onmessage = function (event) {
   setBarData({ data: [...barData.data, JSON.parse(event.data)] });
 };
 console.log(barData);
 return (
   <React.Fragment>
     <Title>График</Title>
     <ResponsiveContainer>
       <LineChart
         data={barData.data}
         margin={{
           top: 16,
           right: 16,
           bottom: 0,
           left: 24,
         }}
       >
         <XAxis dataKey="time" stroke={theme.palette.text.secondary} />
         <YAxis stroke={theme.palette.text.secondary}>
           <Label
             angle={270}
             position="left"
             style={{ textAnchor: "middle", fill: theme.palette.text.primary }}
           >
             Пульс
           </Label>
         </YAxis>
         <Tooltip />
         <Line
           type="monotone"
           dataKey="pulse"
           stroke={theme.palette.primary.main}
           dot={false}
         />
       </LineChart>
     </ResponsiveContainer>
   </React.Fragment>
 );
}
источник