I have a render error that says “Cannot call a class as a function” This error occurred after I upgraded my react-native-meteor to @meteorrn/core
Index.js:
import RenderMixin from './page.render';
import MethodMixin from './page.method';
import {connect} from 'react-redux';
import {withRouter} from 'react-router-dom';
import Meteor, {withTracker} from '@meteorrn/core';
import {setJobQuery} from '@api/jobs/reducers/actions-reducer';
import moment from 'moment';
import AsyncStorage from '@react-native-async-storage/async-storage';
const Page = MethodMixin(RenderMixin);
const mapStateToProps = state => {
return {
jobQuery: state.jobQuery,
userProfile: state.userProfile,
};
};
const mapDispatchToProps = dispatch => {
return {
setJobQuery: params => dispatch(setJobQuery(params)),
dispatch,
};
};
const container = withTracker(props => {
const lng = props.userProfile.language.toLowerCase();
const userSub = Meteor.subscribe('user.data');
const user = Meteor.user() || {};
const {keyword, limit, date, filterDate} = props.jobQuery;
const listSubs = Meteor.subscribe(
'get.truck.dispatch.list',
keyword,
date,
limit,
lng,
);
// console.log(filterDate,"filterdate")
// console.log(moment(filterDate).startOf('day').add(1,'day'),"start")
// console.log(moment(filterDate).endOf('day').toDate(),"end")
const today = moment.utc(filterDate).startOf('day').add(1,'day')
const tom = moment.utc(filterDate).endOf('day').toDate()
console.log(moment.utc(filterDate).toISOString(),"start")
console.log(moment.utc(filterDate).endOf('day'),"enddd")
const tra = AsyncStorage.getAllKeys()
.then((keys)=> AsyncStorage.multiGet(keys)
.then((data) => console.log(JSON.stringify(data, null, 2))));
console.log(tra)
console.log(date)
const xxx = Meteor.Collection('dispatch').find(
{
$or: [{'dispatch.truckId': user.profile?.truckerId}, {'dispatch.driverId': user.profile?.truckerId}],
'dispatch.dateCreated': {$gte: today, $lte: tom}
},
{sort: {orderDateObject: -1}},
// {fields: {
// 'dispatch.dateCreated': 1
// }}
) || []
// dispatchData.customerName = job?.[0]?.customerName || job?.customerName;
// const yyyy = xxx.map(x => x.dispatch.dateCreated)
// console.log(JSON.stringify(yyyy, null, 2))
return {
user,
userSubReady: userSub.ready(),
listSubs: !listSubs.ready(),
list:xxx,
date,
lng
};
})(Page);
const PageRedux = connect(
mapStateToProps,
mapDispatchToProps
)(container);
export default withRouter(PageRedux);
Page Render.js
import React, {Component} from 'react';
import Drawer from 'react-native-drawer';
import DefaultDrawer from '@component/default-drawer.js';
class Page extends Component {
render() {
return (
<Drawer
openDrawerOffset={0.2}
ref={ref => (this._drawer = ref)}
content={
<DefaultDrawer closeDrawer={this.closeDrawer} {...this.props} />
}>
</Drawer>
);
}
}
export default Page;