I am trying to create a booking agent and ran into this problem where it wont let me render because the object is not being passed in.
Invalid prop items
of type array
supplied to ReservationList
, expected object
.
Here is my code
export default function CalendarScreen() {
const [modalOpen, setModalOpen] = useState(false)
const [items, setItems] = useState([])
const loadItems = (day) => {
setTimeout(() => {
for (let i = -15; i < 85; i ) {
const time = day.timestamp i * 24 * 60 * 60 * 1000;
const strTime = timeToString(time);
if (!items[strTime]) {
items[strTime] = [];
const numItems = Math.floor(Math.random() * 3 1);
for (let j = 0; j < numItems; j ) {
items[strTime].push({
name: "items",
height: Math.max(50, Math.floor(Math.random() * 150)),
});
}
}
}
var newItems = {};
Object.keys(items).forEach((key) => {
newItems[key] = items[key];
});
setItems(newItems);
}, 1000);
};
const renderItem = (item) => {
return (
<TouchableOpacity style={{marginRight: 10, marginTop: 17}}>
<Card>
<Card.Content>
<View
style={{
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
}}>
<Text>{item.name}</Text>
</View>
</Card.Content>
</Card>
</TouchableOpacity>
);
};
I am not sure how to fix this problem.
CodePudding user response:
in propTypes change ReservationList to
ReservationList: PropType.array
CodePudding user response:
You can use this function to create array from object :
export const objectToArray = (obj: any) => {
return Object.keys(obj).map(function (key) {
return obj[key];
});
};