【发布时间】:2021-08-24 03:27:15
【问题描述】:
我是打字稿的新手,我试图在组件之间传递数据,但我不知道如何在打字稿中做到这一点
我的父亲组件
const Main: React.FC = () => {
const [orgsData, setOrgsData] = useState<Array<Orgs>>([])
useEffect(() => {
loadOrgs()
},[])
const loadOrgs = () =>{
Services.getOrgs()
.then(response =>{
setOrgsData(response.data)
console.log(response.data)
})
.catch(e =>{
console.log(e)
})
}
return (
<Box flex = {1} >
<Navbar/>
<SubHeader/>
<OrgsList data = {orgsData}/>
<Footer/>
</Box>
);
}
export default Main;
我的子组件
import Orgs from '../api/interfaces'
interface OrgList {
data: Orgs[]
}
export default function OrgList(props: OrgList) {
const data = props;
return (
<Center>
<Box>
<Flex flexDirection="column">
{data.map((item) => (
<Box
padding={3}
w={350}
h='auto'
borderRadius={14}
backgroundColor="#ffffff"
shadow={1}
>
<Flex flexDirection='row'>
<Box>
<Image alt = '' borderRadius={6} w={50} h={50} source={ReactIcon} />
</Box>
<Flex flexDirection='column'>
<Box marginLeft={2}>
<Heading
fontSize={16}
color="#2196f3"
fontWeight={500}
>
{item.login}
</Heading>
<Heading
fontSize={16}
color="#636363"
fontWeight={400}
overflow='hidden'
>
React website and its localizations
</Heading>
</Box>
</Flex>
</Flex>
<Flex flexDirection='row' justifyContent='flex-end'>
<Button
marginTop={3}
padding={2}
size='sm'
borderRadius={16}
backgroundColor='#91CBF9'
startIcon={
<Icon
as={<SalvoAzul />}
size='sm'
>
</Icon>
}
>
<Text
textAlign='center'
color='#2196f3'
>
Salvar
</Text>
</Button>
</Flex>
</Box>
))}
</Flex>
</Box>
</Center>
);
}
当我尝试映射我的道具时返回此错误
“OrgList”类型上不存在属性“map”
我是打字稿的新手,我不知道如何在这些组件之间传递数据
【问题讨论】: