<div>
<div v-for="foo in receivedData.foo" class="fixed-size">
<template v-if="!loading">
{{ foo }}
<template>
</div>
{{ receivedData.bar }}
</div>data() {
return {
receivedData: {
foo: 10,
bar: 'Loading'
},
this.loading: true
}
},<div v-if="loading" class="fixed-size">
Loading
</div>
<div v-else class="fixed-size">
<div v-for="foo in receivedData.foo">{{ foo }}</div>
{{ receivedData.bar }}
</div>Меня бы устроили размеры компонента без данных с файлаЕщё раз: откуда ты их знаешь? Если они фиксированы в css и количество элементов в
receivedData.foo тоже известно, то см. выше. Если же размеры зависят от текста, что прилетит и количество элементов может быть разным - размер может быть произвольным.
object нет categories и у тебя нет проверки, что там именно IGoods, а не object. useState({} as IGoods);, но таким образом ты посылаешь нахрен typescript и открываешь дорогу ошибкам. Лучше не надо.null, описанный Александр - единственно верный.useState<IGoods>(); без лишних телодвижений, и тогда в state у тебя будет IGoods | undefined.
type Desc = {
view: 'labeled'
label: string
} | {
view?: undefined
}
export interface ModalProps extends CuiModalProps {
namePopup?: string
isOpen?: boolean
withBorder?: boolean
className?: string
}
export const Component = (pros: ModalProps & Desc) => { ... };
Mobx сильно на костылях прикручен к реакту и там есть куча оговорок.
Ну и использовать его нормально можно только как стор, основная работа всё равно останется на хуках.