Size: a a a

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

2020 September 25

DB

Dmitry Bondar in React — русскоговорящее сообщество
Станислав Лахман
можете подсказать почему возвращает промис вместо массива?
тебе нужно loadData сделать отдельно, например в useEffect, подождать ответ от сервера и закинуть результат в редюсер
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
Bugs Bunny
Зря ты с async await начал
Под капотом это промис
источник

СЛ

Станислав Лахман... in React — русскоговорящее сообщество
Dmitry Bondar
тебе нужно loadData сделать отдельно, например в useEffect, подождать ответ от сервера и закинуть результат в редюсер
Делал, и заганял в стэйт, но стэйт тоже промис возвращал
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
Станислав Лахман
Делал, и заганял в стэйт, но стэйт тоже промис возвращал
значит «не ждал» пока промис разрешится а загонял сам промис
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
Дропни второй аргумент в useReducer, замени на пустой массив, а не на вызов функции, которая вернет промис
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
загоняй в reducer/state после await или then
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
тебе надо сделать
const result = await loadData();
а потом уже в reducer/state
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
Станислав Лахман
Делал, и заганял в стэйт, но стэйт тоже промис возвращал
useEffect(() => {
   const res = await axios.get();
   dispatch({ type: "LOAD_DATA", data: res });
}, []);
источник

ГФ

Герман Филатов... in React — русскоговорящее сообщество
проблема, в том что плеер есть да, стили все есть, но но не врубался, я почитал доки и нашел свойство. player.play()
источник

ГФ

Герман Филатов... in React — русскоговорящее сообщество
ну и вот что из этого вышло import ReactReact, {Component} from 'react'
import './ZNO.css'
import { connect } from 'react-redux'
import {Player,
   PosterImage,
   BigPlayButton,
   LoadingSpinner,
   ControlBar,
   VolumeMenuButton,
   PlayToggle} from 'video-react';
import "video-react/dist/video-react.css";

export default class ZNO extends
ReactReact.Component {
   constructor() {
       super();
       this.play = this.play.bind(this);
   }

   play()
   {
       this.player.play();
   }

       render() {
           return (
               <div className="ZNO">
                   <div className="container">
                       {/*<h1 className="head-text">{lan.head}</h1>*/}
                       <div className="zno-padd-block padd-block">
                           {/*<h3 className="padd-block-head">{lan.text}</h3>*/}
                           <div className="video-zno">
                               <div className="video">
                                   <Player
                                       ref={player => {
                                           this.player = player;
                                       }}
                                       playsInline
                                       autoPlay
                                       src="https://www.youtube.com/video"
                                   >
                                       <LoadingSpinner />
                                       <ControlBar autoHide={false} />
                                       <VolumeMenuButton />
                                       <PlayToggle />
                                       <BigPlayButton onClick={this.play} position="center" />
                                   </Player>
                               </div>
                           </div>
                       </div>
                   </div>
               </div>
           )
       }
}
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
Dmitry Guzeev
useEffect(() => {
   const res = await axios.get();
   dispatch({ type: "LOAD_DATA", data: res });
}, []);
это не будет работать useEffect не может быть асинхронным
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
может
источник

BB

Bugs Bunny in React — русскоговорящее сообщество
Нет. Там надо оборачивать в вызов анонимки
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
ну да
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
useEffect(() => {
(async () => {
// тут код
})();
}
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
Dmitry Guzeev
useEffect(() => {
(async () => {
// тут код
})();
}
ну так это не асинхронный useEffect )
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
ну да)
источник

꧁岡

꧁倫太郎 岡部꧂... in React — русскоговорящее сообщество
Герман Филатов
ну и вот что из этого вышло import ReactReact, {Component} from 'react'
import './ZNO.css'
import { connect } from 'react-redux'
import {Player,
   PosterImage,
   BigPlayButton,
   LoadingSpinner,
   ControlBar,
   VolumeMenuButton,
   PlayToggle} from 'video-react';
import "video-react/dist/video-react.css";

export default class ZNO extends
ReactReact.Component {
   constructor() {
       super();
       this.play = this.play.bind(this);
   }

   play()
   {
       this.player.play();
   }

       render() {
           return (
               <div className="ZNO">
                   <div className="container">
                       {/*<h1 className="head-text">{lan.head}</h1>*/}
                       <div className="zno-padd-block padd-block">
                           {/*<h3 className="padd-block-head">{lan.text}</h3>*/}
                           <div className="video-zno">
                               <div className="video">
                                   <Player
                                       ref={player => {
                                           this.player = player;
                                       }}
                                       playsInline
                                       autoPlay
                                       src="https://www.youtube.com/video"
                                   >
                                       <LoadingSpinner />
                                       <ControlBar autoHide={false} />
                                       <VolumeMenuButton />
                                       <PlayToggle />
                                       <BigPlayButton onClick={this.play} position="center" />
                                   </Player>
                               </div>
                           </div>
                       </div>
                   </div>
               </div>
           )
       }
}
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
ты просто из него вызываешь асинзронную функию)
источник

DB

Dmitry Bondar in React — русскоговорящее сообщество
это и имеется в виду - ему надо так сделать
источник