useSelector в контейнере React, используемом с типами потока - PullRequest
1 голос
/ 12 марта 2020

Я из простого javascript мира, и теперь мне нужно переписать компонент класса с помощью ловушек, но у меня возникли некоторые проблемы с потоком, я никогда не работал с ним.

У меня есть функциональный компонент, который Я хочу переписать с помощью хуков, но не могу заставить работать эти селекторы:

type Props = {
  history: Object,
  sets: Array<Object>,
  tArray: Object,
  gu: Object
};

const Page = () => {

  const { tArray} = useSelector<Object>(state => state.t.tArray.map(x => ({
    A: x.A,
    B: x.B,
    C: x.C
    date: x.lastExportDate
      ? dateFormat(new Date(x.lastExportDate), 'm/dd/yyyy')
      : []
  })))

  const { gu } = useSelector(state => state.gu)
  const { sets } = useSelector(state => state.sets.allSets.map(x=> ({
    value: x.setId,
    label: x.name
  })))

  const [showModal, setShowModal] = useState(false);

  return (
    <div>
    </div>
  )

}


export default HomePage;

Я не знаю, как записать типы возврата селекторов и реквизитов, полученных контейнером.

Ни один из первых двух методов написание селекторов работает.

Спасибо

1 Ответ

0 голосов
/ 12 марта 2020

Это будет работать:

const { gu } = useSelector(state)
const { sets } = useSelector(state => state.sets.allSets.map(x=> {
  return {
    sets: {
      value: x.setId,
      label: x.name
   }
  }))

Возвращаемое значение должно содержать то, что нужно для строительства. Таким образом, первая конструкция gu не имеет ничего общего, так как состояние содержит сам объект gu. И объект sets, необходимый для вашей второй конструкции, которая не возвращала требуемый объект.


По сути, я хотел сказать следующее:

Предположим, у нас есть объект -

const obj = { foo: 1 }

А теперь, если мы хотим построить foo, чтобы получить значение:

const { foo } = obj.foo // wrong
const { foo } = obj // right

Надеюсь, теперь это вам ясно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...