我正在尝试更新数组映射内的状态,但是它给我一个错误,指出setState
不是this
上的函数。我该如何实现?我的代码段如下
this.setState({
isLoading: true
});
this.state.questions.map(function(key, value) {
if (key.id === undefined) {
axios
.post("/api/questions/create", key)
.then(response => {
this.setState({
isLoading: true
});
})
.catch(error => {});
} else {
axios
.post("/api/questions/update/" + key.id, key)
.then(response => {
this.setState({
isLoading: true
});
})
.catch(error => {});
}
});
答案 0 :(得分:3)
请尝试在map
中使用粗箭头语法。
更改此项:this.state.questions.map(function(key, value) {
对此:this.state.questions.map((key, value) => {
箭头函数表达式在语法上是常规函数表达式的紧凑替代形式,尽管没有与this,arguments,super或new.target关键字的绑定。
详细了解箭头功能here。
答案 1 :(得分:1)
请查阅THIS,以获取import { endOfDay } from "date-fns"
import { format } from "date-fns-tz"
function getEndDate(date: Date, timeZone: string) {
const endDate = endOfDay(new Date())
// endDate = Mon Feb 10 2020 23:59:59 GMT+0800 (Hong Kong Standard Time) {}
const formatted = format(endDate, "yyyy-MM-dd'T'HH:mm:ssXXX", { timeZone })
// formatted = "2020-02-10T23:59:59+08:00"
return formatted
}
关键字的详细工作性质,以及Arrow Functions,以获取有关this
函数的详细信息。希望文档有助于更好地理解。
=>