繁体   English   中英

反应本地Wix日历标记日期显示错误

[英]React Native Wix Calendar Marked Dates showing error

我正在为我的项目使用wix日历,我已经按照类似主题在另一个问题中提到的所有步骤进行了操作。

我已经这样编码

 class TutorCalender extends Component { static navigationOptions = { header: null, final_array: {}, tution_array: [], unavailable_array: [] } componentWillMount = async () => { try { let { data } = await axios .post("https://chat.qualpros.com/api/get_tutor_calendar", { tutor_id: 4 }) .then(response => { console.log(response.data.data.tutor_private_tution_date_array); if (response.data.data.status === "success") { this.setState({ tution_array: response.data.data.tutor_private_tution_date_array, unavailable_array: response.data.data.tutor_schedule_unavailable_array, }); } else { alert("Something went wrong"); } }); } catch (err) { console.log(err); } // console.log(this.state.tution_array.length); //console.log(this.state.tution_array); if (this.state.tution_array.length !== 0) { console.log('tution available') var objP = Object.assign( ...this.state.tution_array.map(o => ({ [o]: { selected: true, selectedColor: "green", type: "present" } })) ); this.setState({ final_array : objP}); console.log(this.state.final_array) } // var merged = { ...objP }; // // console.log("Came Here"); // this.setState({ final_array: merged }); // console.log(this.state.final_array) } render() { return ( <Container> <Header style={{ backgroundColor: '#d91009' }}> <Left style={styles.left}> <TouchableOpacity style={styles.backArrow} onPress={() => this.props.navigation.navigate("ProfileScreen")} > <FontAwesome name="angle-left" size={30} color='#fff' /> </TouchableOpacity> </Left> <Body> <Text style={{ alignSelf: Platform.OS == 'android' ? 'center' : 'center' }}>Tutor calender</Text> </Body> <Right /> </Header> {/* <Text style={styles.text}>Calendar with marked dates and hidden arrows</Text> */} <Calendar style={styles.calendar} firstDay={1} //markedDates={this.state.final_array} //hideArrows={true} /> </Container> ); } } export default TutorCalender; 

如果我评论markedDates道具,它可以正常工作,对于console.log(this.state.final_array),我将收到如下响应:Object {“ 2018-10-01”:Object {“ selected”:true,“ selectedColor” :“绿色”,“类型”:“现在”,},}

但是当我取消注释markedDates = {this.state.final_array}时,它给我错误“ TypeError:null不是一个对象(正在评估“ this.state.final_array””)

我不明白自己在哪里错了,我已经按照上面提到的所有步骤操作,在此先感谢

当状态尚未通过所需的信息进行更新(加载),因此该值为空时,会发生这种情况。 为了解决这个问题,您可以设置初始值或设置条件以检查数组是否不为空(在分配之前)。

分别定义状态,这里您在静态导航中定义了状态,这是错误的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM