与流类型一起使用的React容器中的useSelector



我来自简单的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;

我不知道如何编写选择器的返回类型和容器接收到的道具。

前两种编写选择器的方法都不起作用。

谢谢

这将起作用:

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

我希望你现在已经清楚了。

最新更新