javascript - 错误 TS2339:类型“IntrinsicClassAttributes...”上不存在属性“{}”
问题描述
嗨,伙计们,我遇到了某种打字稿错误的问题,你能找个时间给我买个答案吗?错误行标有 //->>//
TS2339:“IntrinsicAttributes & IntrinsicClassAttributes<Component<Pick<RoomStatusProps,any> & HTMLProps<H...”类型上不存在属性“isOccupied”。
代码
export class RoomCard extends React.Component<RoomCardProps> {
render(): JSX.Element {
const { name, level, isOccupied, currentBooking } = this.props;
const reservationEntries = this.props.reservations
.filter(entry => {
const time = moment.utc().utcOffset(new Date().getTimezoneOffset(), true);
const startTime = moment.utc(entry.start);
return time.isBefore(startTime) && time.isSame(startTime, 'day');
})
.map(entry => <ReservationEntry entry={entry} key={entry.id} />);
return (
//This line ->// <RoomWrapper isOccupied={isOccupied}>
<RoomInfo>
<Name>{name}</Name>
<Level>Level: {level}</Level>
</RoomInfo>
//This line ->// <Status isOccupied={isOccupied}>
Room is currently {isOccupied ? `booked` : 'free'}
</Status>
{isOccupied && <ReservationEntry entry={currentBooking[0]} />}
{!!reservationEntries.length && (
<ReservationsHeader>Upcoming reservations:</ReservationsHeader>
)}
<ReservationsWrapper>{reservationEntries}</ReservationsWrapper>
</RoomWrapper>
);
}
}
房间包装器和迷人的状态,我想补充一点,这个项目是在 2.4.2 版本的打字稿上:
interface RoomCardProps {
name: string;
level: number;
reservations: AssignedReservation[];
currentBooking: AssignedReservation[];
isOccupied: boolean;
}
interface RoomStatusProps {
isOccupied: boolean;
theme: object;
}
const RoomWrapper = glamorous.div<RoomStatusProps>(
{
width: 380,
borderRadius: 5,
paddingTop: 10,
fontSize: fonts.small,
margin: 10,
},
({ isOccupied = false }) => ({
border: `2px solid ${isOccupied ? contextColors.notAvailable : contextColors.available}`,
}),
);
const RoomInfo = glamorous.div({
width: '100%',
display: 'flex',
flexDirection: 'column',
paddingLeft: 10,
});
const Name = glamorous.p({
marginBottom: 2,
fontSize: fonts.large,
});
const Level = glamorous.p({
color: colors.dustyGray,
});
const Status = glamorous.p<RoomStatusProps>(({ isOccupied = false }) => ({
color: isOccupied ? contextColors.notAvailable : contextColors.available,
paddingLeft: 10,
}));
const ReservationsHeader = glamorous.p({
paddingTop: 20,
paddingLeft: 10,
paddingBottom: 5,
});
const ReservationsWrapper = glamorous.ul({
display: 'flex',
flexDirection: 'column',
[' :nth-child(2n)']: {
background: colors.dustyGray,
},
});
顺便说一句,问题仅在于<RoomWrapper isOccupied={isOccupied}>
解决方案
推荐阅读
- java - 是 ConcurrentHashMap
> 线程安全? - javascript - 如何创建 html 行和列
- macos - 确定 macOS 上是否存在触控板
- tensorflow - mnist 数据的 tensorflow 模型精度不会提高
- vb.net - 移动二进制数据直到特定值从一个文件到另一个文件
- wso2 - WSO2 是租户的决策权
- clojure - 是否可以从我可以从 jconsole 管理的 Clojure 创建可写 bean?
- python-3.x - Jinja2 列表索引变量 - list_name[variable]
- r - 是否可以与负年份约会?
- python - Scrapy:无法将项目加载到蜘蛛