Size: a a a

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

2020 September 27

VK

Vladimir Klimov in React — русскоговорящее сообщество
Скиньте код наконец
источник

АЧ

Антон Чепур... in React — русскоговорящее сообщество
Vladimir Klimov
Скиньте код наконец
import React, { useState, useEffect } from "react"
import { PositionsItem } from "./PositionsItem"
// @ts-ignore
import Down from "../../assets/img/down.png"

import { AddPosition } from "./AddPosition"
import { DialogWrapCentered } from "../../Templates/Dialogs/Common/DialogWrapCentered/DialogWrapCentered"
import { requestHotelPositions, addNewPosition, removePosition } from "../../store/reducers/positions/actions/actions"
import { connect } from "react-redux"
import { IPositionsProps } from "./types"
import { TRootState } from "../../store"
import { IPositions } from "../../store/reducers/positions/types.data"
import { requestHotelsTree } from "../../store/reducers/global/actions/actions"
const s = require("./positions.module.css")
export const Positions: React.FC<IPositionsProps> =({requestHotelPositions,
addNewPosition, positionsList, requestHotelsTree, hotelsList,
hotelId, removePosition}) => {
 useEffect(()=> {
   requestHotelPositions(hotelId)
 } , hotelId)
 const [addDialog, setAddDialog] = useState(false)
 const closeWindow = ()=> {
   setAddDialog(false)
 }
 const addPosition = (body: IPositions) => {
   addNewPosition(body)
   requestHotelPositions(hotelId)
 }
 if(!positionsList) {
   return (
     <h1>Загрузка...</h1>
   )
 }
 return (
   <section className={ s.positions } >
     <div className={ s.addButton } onClick={() => {
       setAddDialog(true)
       console.log(hotelId)
     }} ><p className={s.addText} >+</p>Добавить</div>
     {addDialog ? <DialogWrapCentered><AddPosition addHandler={addPosition}
                                                   hotelsList={hotelsList}
                                                   positionsList={positionsList}
                                                   setVisible={closeWindow} /> </DialogWrapCentered> : null}
     <div className={ s.positions__list } >

       <div className={ s.positions__listHeader } >
         <div className={ s.positions__listHeader__item } >№</div>
         <div className={ s.positions__listHeader__item } >Должность</div>
         <div className={ s.positions__listHeader__item } >Описание</div>
         <div className={ s.positions__listHeader__item } >Опции</div>
       </div>
       {
         positionsList.map(p => <PositionsItem key={p.id} id={p.id}
                                               name={p.name} desc={p.description} removePosition={removePosition} />)
       }
     </div>
   </section>
 )
}
const mapStateToProps = (state: TRootState) => ({
 positionsList: state.positions.positionsList,
 hotelsList: state.global.hotels,
 hotelId: state.employersSideMenu.choosedHotel
})
const mapDispatchToProps = {
 requestHotelPositions,
 addNewPosition,
 requestHotelsTree,
 removePosition
}
export const PositionsContainer = connect(mapStateToProps, mapDispatchToProps)(Positions)
источник

ЕВ

Егор Водопьянов... in React — русскоговорящее сообщество
Хоть бы в ‘’’ обернули))
источник

ЕВ

Егор Водопьянов... in React — русскоговорящее сообщество
Антон Чепур
import React, { useState, useEffect } from "react"
import { PositionsItem } from "./PositionsItem"
// @ts-ignore
import Down from "../../assets/img/down.png"

import { AddPosition } from "./AddPosition"
import { DialogWrapCentered } from "../../Templates/Dialogs/Common/DialogWrapCentered/DialogWrapCentered"
import { requestHotelPositions, addNewPosition, removePosition } from "../../store/reducers/positions/actions/actions"
import { connect } from "react-redux"
import { IPositionsProps } from "./types"
import { TRootState } from "../../store"
import { IPositions } from "../../store/reducers/positions/types.data"
import { requestHotelsTree } from "../../store/reducers/global/actions/actions"
const s = require("./positions.module.css")
export const Positions: React.FC<IPositionsProps> =({requestHotelPositions,
addNewPosition, positionsList, requestHotelsTree, hotelsList,
hotelId, removePosition}) => {
 useEffect(()=> {
   requestHotelPositions(hotelId)
 } , hotelId)
 const [addDialog, setAddDialog] = useState(false)
 const closeWindow = ()=> {
   setAddDialog(false)
 }
 const addPosition = (body: IPositions) => {
   addNewPosition(body)
   requestHotelPositions(hotelId)
 }
 if(!positionsList) {
   return (
     <h1>Загрузка...</h1>
   )
 }
 return (
   <section className={ s.positions } >
     <div className={ s.addButton } onClick={() => {
       setAddDialog(true)
       console.log(hotelId)
     }} ><p className={s.addText} >+</p>Добавить</div>
     {addDialog ? <DialogWrapCentered><AddPosition addHandler={addPosition}
                                                   hotelsList={hotelsList}
                                                   positionsList={positionsList}
                                                   setVisible={closeWindow} /> </DialogWrapCentered> : null}
     <div className={ s.positions__list } >

       <div className={ s.positions__listHeader } >
         <div className={ s.positions__listHeader__item } >№</div>
         <div className={ s.positions__listHeader__item } >Должность</div>
         <div className={ s.positions__listHeader__item } >Описание</div>
         <div className={ s.positions__listHeader__item } >Опции</div>
       </div>
       {
         positionsList.map(p => <PositionsItem key={p.id} id={p.id}
                                               name={p.name} desc={p.description} removePosition={removePosition} />)
       }
     </div>
   </section>
 )
}
const mapStateToProps = (state: TRootState) => ({
 positionsList: state.positions.positionsList,
 hotelsList: state.global.hotels,
 hotelId: state.employersSideMenu.choosedHotel
})
const mapDispatchToProps = {
 requestHotelPositions,
 addNewPosition,
 requestHotelsTree,
 removePosition
}
export const PositionsContainer = connect(mapStateToProps, mapDispatchToProps)(Positions)
В массив нужно
источник

ЕВ

Егор Водопьянов... in React — русскоговорящее сообщество
[number]
источник

ЕВ

Егор Водопьянов... in React — русскоговорящее сообщество
В доке написано же что принимает только массив
источник

АЧ

Антон Чепур... in React — русскоговорящее сообщество
Егор Водопьянов
В доке написано же что принимает только массив
Да! А когда я делаю [hotelId] то вызов зацикливается
источник

ЕВ

Егор Водопьянов... in React — русскоговорящее сообщество
Антон Чепур
Да! А когда я делаю [hotelId] то вызов зацикливается
И почему hotelid меняется?
источник

АЧ

Антон Чепур... in React — русскоговорящее сообщество
Егор Водопьянов
И почему hotelid меняется?
я клацаю на кнопочку и выбираю в списке что-то с другим hotelId
источник

ЕВ

Егор Водопьянов... in React — русскоговорящее сообщество
Антон Чепур
я клацаю на кнопочку и выбираю в списке что-то с другим hotelId
Ну делается вызов из useEffect один раз, а второй вызов откуда там возьмётся? Посмотри в дебаггере «при зацикливании» hotelId
источник

ПМ

Павел Маценко... in React — русскоговорящее сообщество
Vlad
либо вот более декларативный способ
спасибо!
источник

И

Иван in React — русскоговорящее сообщество
Ruslan
здарсте , как правильно пользоваться subscribe-ом?
Как в документации написано
источник

И

Иван in React — русскоговорящее сообщество
Вера, вакансии в @javascript_jobs
источник

R

Ruslan in React — русскоговорящее сообщество
Есть тут люди которые работали с graphQL?
источник

E

Evgeny in React — русскоговорящее сообщество
Ruslan
Есть тут люди которые работали с graphQL?
источник

V

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

Ri

Rustam is not a func... in React — русскоговорящее сообщество
нужен совет, кому не жалко поделитесь названием толкого курса react + typescipt + бэкенд( опционально). Хотел разобраться как это работает. Как я понимаю, подойдет любой курс с react просто к проекту надо подрубить типизацию?
источник

🇺

🇺🇸 Advisory 🇺🇸... in React — русскоговорящее сообщество
Переслано от 🇺🇸 Advisory 🇺🇸...
npm start Error!
источник

И

Иван in React — русскоговорящее сообщество
🇺🇸 Advisory 🇺🇸
Переслано от 🇺🇸 Advisory 🇺🇸
npm start Error!
тебе лень вопрос задать?
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Иван
тебе лень вопрос задать?
+ тоже интересно
источник