Size: a a a

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

2020 October 22

VR

Victor Rusakovich in React — русскоговорящее сообщество
Myroslav 🍎
Ну так ,мы открываем соединение изменяем стейт и открывается сокет
эх... сокет открывается в момент вызова new Websocket. В useEffect ты всего лишь подписался на событие "вебсокет открылся".
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
вот теперь действительно понял
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
Victor Rusakovich
эх... сокет открывается в момент вызова new Websocket. В useEffect ты всего лишь подписался на событие "вебсокет открылся".
ну вот допустим я открываю сокет в useEffect
  useEffect(() => {
   let ws = new WebSocket("wss://elepsio.herokuapp.com/");
   ws.onclose = () => console.log("Сокет закрыт");

   return () => {
     ws.close();
   };
 }, []);
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
и теперь когда я открываю компонент открывается соединение и закрываю закрывается
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
у меня есть стейт
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
мне в него нужно записывать приходящие данные
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
записывать данные я должен в хуке или за хуком ?
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
export default function Chart() {
 const theme = useTheme();

 useEffect(() => {
   let ws = new WebSocket("wss://elepsio.herokuapp.com/");
   ws.onopen = () => console.log("ws open");
   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)] });
 };
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
если за хуком то ws  не определенная
источник

VR

Victor Rusakovich in React — русскоговорящее сообщество
Myroslav 🍎
export default function Chart() {
 const theme = useTheme();

 useEffect(() => {
   let ws = new WebSocket("wss://elepsio.herokuapp.com/");
   ws.onopen = () => console.log("ws open");
   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)] });
 };
ws.onmessage должна быть там, где есть ws.
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
вот так ?
export default function Chart() {
 const theme = useTheme();

 useEffect(() => {
   let ws = new WebSocket("wss://elepsio.herokuapp.com/");
   ws.onopen = () => console.log("ws open");
   ws.onmessage = function (event) {
   setBarData({ data: [...barData.data, JSON.parse(event.data)] });
 };
   ws.onclose = () => console.log("ws closed");

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

 const [barData, setBarData] = useState({
   data: [
     {
       time: "18:02",
       pulse: 87,
     },
   ],
 });
источник

SA

S. A. M. in React — русскоговорящее сообщество
ребят не могу разобраться с Controller (react-hook-form) с привязкой react-select, а именно привязать значение по умолчанию
источник

VR

Victor Rusakovich in React — русскоговорящее сообщество
похоже
источник

SA

S. A. M. in React — русскоговорящее сообщество
S. A. M.
ребят не могу разобраться с Controller (react-hook-form) с привязкой react-select, а именно привязать значение по умолчанию
<Controller {...props}
           name={name}
           control={control}
           defaultValue={''}
           render={({onChange, value}) => (
                   <SelectLib styles={selectCustomStyles}
                              value={(value && value.value) || (val)}
                              options={options}
                              onChange={(val) => {
                                  setVal(val);
                                  let newValue = val;
                                  if (multi && isArray(val)) {
                                      newValue = val.map(({value}) => value)
                                  } else {
                                      newValue = val && val.value;
                                  }
                                  return onChange(newValue)
                              }}
                              placeholder={title}
                              isMulti={multi}
                   />
               )
           }
/>
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
Victor Rusakovich
похоже
но теперь происходит я так понял мутация,он постоянно заменяет элемент второй,а не добавляет каждый элемент
источник

VR

Victor Rusakovich in React — русскоговорящее сообщество
Myroslav 🍎
но теперь происходит я так понял мутация,он постоянно заменяет элемент второй,а не добавляет каждый элемент
разобрался с сокетами, теперь пора разобраться как добавлять данные в стейт :)
источник

VR

Victor Rusakovich in React — русскоговорящее сообщество
источник

VR

Victor Rusakovich in React — русскоговорящее сообщество
источник

M

Myroslav 🍎 in React — русскоговорящее сообщество
Victor Rusakovich
разобрался с сокетами, теперь пора разобраться как добавлять данные в стейт :)
а в что тут не так ?
    ws.onmessage = function (event) {
     setBarData({ data: [...barData.data, JSON.parse(event.data)] });
   };
да туплю жостко но не мог бы ты показать в чем проблема
источник

SA

S. A. M. in React — русскоговорящее сообщество
S. A. M.
<Controller {...props}
           name={name}
           control={control}
           defaultValue={''}
           render={({onChange, value}) => (
                   <SelectLib styles={selectCustomStyles}
                              value={(value && value.value) || (val)}
                              options={options}
                              onChange={(val) => {
                                  setVal(val);
                                  let newValue = val;
                                  if (multi && isArray(val)) {
                                      newValue = val.map(({value}) => value)
                                  } else {
                                      newValue = val && val.value;
                                  }
                                  return onChange(newValue)
                              }}
                              placeholder={title}
                              isMulti={multi}
                   />
               )
           }
/>
пытаюсь привязать дефолтное значение в ui все верно показывает, но само значение не записывает в проп value
источник