Javascript 排序函数后是否应在回调中设置状态?
在componentDidMount方法中,我将数据划分为两个单独的列表,然后设置这两个列表的状态,以便我的UI能够呈现它们。我有两个问题:Javascript 排序函数后是否应在回调中设置状态?,javascript,react-native,callback,lodash,Javascript,React Native,Callback,Lodash,在componentDidMount方法中,我将数据划分为两个单独的列表,然后设置这两个列表的状态,以便我的UI能够呈现它们。我有两个问题: componentDidMount()方法是否是对从API调用接收的列表进行分区的适当位置 代码是否有可能在lodash完成分区之前尝试设置状态(假设它是一个很长的列表)?如果是这样,我尝试了一个.then()回调,但是我得到一个错误,说.then()不是函数 componentDidMount(){ const{data}=this.props let
let currentTime = moment();
let sortedPosts = _.partition(this.state.listViewData, function(o) {
return (o.isActive || (new Date(o.scheduledActiveEnd)) < currentTime);
}).then(() => {
this.setState({
futureListViewData: sortedPosts[0],
currentListViewData: sortedPosts[1]
})
})
让currentTime=moment();
let sortedPosts=u.partition(this.state.listViewData,函数(o){
返回(o.isActive | |(新日期(o.scheduledativeend)){
这是我的国家({
futureListViewData:sortedPosts[0],
currentListViewData:sortedPosts[1]
})
})
componentDidMount()方法是否是对从API调用接收的列表进行分区的适当位置
是的,componentDidMount是放置异步代码的好地方,例如获取数据,然后解析响应
代码是否可能在lodash完成分区之前尝试设置状态(假设它是一个很长的列表)?如果是,我尝试了.then()回调,但我得到一个错误,即.then()不是函数
不,是同步的。它返回一个数组数组,而不是承诺。如果在大型数组上调用u.partition,线程将阻塞,直到完成对数组的分区
componentDidMount()方法是否是对从API调用接收的列表进行分区的适当位置
是的,componentDidMount是放置异步代码的好地方,例如获取数据,然后解析响应
代码是否可能在lodash完成分区之前尝试设置状态(假设它是一个很长的列表)?如果是,我尝试了.then()回调,但我得到一个错误,即.then()不是函数
不,是同步的。它返回一个数组数组,而不是承诺。如果在大型数组上调用u.partition,线程将阻塞,直到完成对数组的分区