错误:捆绑失败:错误:无法解析模块: Haste 模块映射
hoist-non-react-statics中不存在模块E:\DEVELOPMENTWORKSPACE\test\node_modules\react-native-calendars\src\expandableCalendar\asCalendarConsumer.jshoist-non-react-statics
这可能与https://github.com/facebook/react-native/issues/4968有关
要解决请尝试以下操作:
watchman watch-del-all.node_modules文件夹:rm -rf node_modules && npm install.rm -rf /tmp/metro-bundler-cache-*或npm start -- --reset-cache.rm -rf /tmp/haste-map-react-native-packager-*.我正在使用反应本机日历。我有一个<Calendar/>组件。
我已经阅读了文档大约十几次,并且找不到比current初始化日历视图的属性更好的更改月份的属性。例如,如果我设置current={"2014-01-01"},我将看到 2014 年的日历,即 1 月 1 日。问题是我无法重新渲染此道具。
我也尝试使用keyprop,但它不会改变日期。Ref 也不是一个选项,我有自定义的<CalendarHeader/>
包.json
"react": "17.0.2",
"react-native": "0.66.4",
"react-native-calendars": "1.1274.0"
Run Code Online (Sandbox Code Playgroud)
日历.tsx
const CalendarScreen = () => {
const [current, setCurrent] = useState('2020-01-01');
return (
<Calendar
current={current}
customHeader={CalendarHeaderHandler}
style={styles.calendar}
/>
<TouchableOpacity onPress={() => setCurrent('2021-01-01')}>
<Text>2021</Text>
</TouchableOpacity>
)};
Run Code Online (Sandbox Code Playgroud) 目标:能够react-native-calendars使用onDayPressprop选择日历上的 2 个日期,并使用markedDatesprop 中的结果形成一段天数。
组件.js:
import React, { useState, useEffect } from 'react';
import { Image, View, Animated, StyleSheet, TouchableOpacity, Dimensions } from 'react-native';
import EStyleSheet from 'react-native-extended-stylesheet';
import { Calendar } from 'react-native-calendars';
const { width } = Dimensions.get('window');
const CalendarPicker = (props) => {
const [ markedDates, setMarkedDates ] = useState({});
const markDate = (dateString) => {
setMarkedDates(
(markedDates[dateString] = {
endingDay: true,
color: 'blue'
})
);
};
useEffect(() => {});
return …Run Code Online (Sandbox Code Playgroud) 说明 使用renderArrow函数显示上一个月和下个月而不是箭头
预期行为 在左侧和下个月在右侧显示上个月
观察到的行为 两方都显示上个月
我的代码:
<Calendar
onDayPress={(day) => {this.setDay(day)}}
renderArrow={(left,right) => (left? {this.state.previousMonth}: {this.state.nextMonth})}
pastScrollRange={0}
markedDates={{[this.state.selected]: {selected: true, disableTouchEvent: true, selectedColor: '#C7A985'}}}
firstDay={1}
theme={{
selectedDayTextColor: 'white'
}}
/>
Run Code Online (Sandbox Code Playgroud)