【发布时间】:2020-07-10 17:37:55
【问题描述】:
我有 4 个人的 4 个日期,我想带上添加该日期的人的姓名,但是当我选择数组遍历 4 次的日期时,其中一个会带上姓名..说阵列可以旅行所有人,但不仅仅是我想要的人。 例如在第 17 天,当我选择它时 2 个警报出现错误,第三个带有人名,第四个警报错误.. 其他类似
代码是这个,感兴趣的函数是infoDay
constructor(props) {
super(props);
this.state = {
selected: "",
usuarios: [],
};
}
componentDidMount() {
firebase
.database()
.ref("DatosCli/")
.on("child_added", (data) => {
var datos = data.val();
/* alert(JSON.stringify(datos)); */
var usuariosTemp = this.state.usuarios;
datos.key = data.key;
//Alert.alert("prueba",""+datos.longitud)
usuariosTemp.push(datos);
this.setState({ usuarios: usuariosTemp });
});
}
cargarDatos = async () => {
var userTemp = new Array();
var data = await firebase.database().ref("/DatosCli").once("value");
data.forEach((child) => {
var user = child.val();
user.key = child.key;
userTemp.push(user);
});
this.setState({ usuarios: userTemp });
};
render() {
const markedDates = {};
this.state.usuarios.forEach((usuarioTemp) => {
markedDates[usuarioTemp.date] = {
selected: true,
disableTouchEvent: false,
selectedColor: "orange",
selectedTextColor: "red",
};
});
const infoDay = (day) => {
this.state.usuarios.forEach((usuarioTemp) => {
if (day.dateString == usuarioTemp.date) {
alert(usuarioTemp.nombre);
} else {
alert("fail");
}
});
};
return (
<View style={styles.container}>
<CalendarList markedDates={markedDates} onDayPress={infoDay} />
</View>
);
}
【问题讨论】:
-
你能维护一个地图,其中日期是一个键,所有的人都被添加到数组中并将其作为一个值存储在地图中它会像。 {"日期":["person1","person2"]} .
-
写入控制台并查看值类型并比较 (day.dateString == usuarioTemp.date) console.log(day.dateString) console.log(usuarioTemp.date) 查看 console.log(天)太
-
我得试试
标签: javascript reactjs react-native foreach