Javascript 如何仅在上次XHR完成后更新/重新渲染组件?

Javascript 如何仅在上次XHR完成后更新/重新渲染组件?,javascript,reactjs,ecmascript-6,redux,Javascript,Reactjs,Ecmascript 6,Redux,我正在尝试优化live search组件,主要问题是每次输入更改时都会有大量XHR请求。在添加每封信之后,服务器会收到新的请求,并且请求需要不同的时间才能完成。因此,最新完成的XHR(事实上,它是第一个XHR,因为它通常返回所有数据)发出对组件的渲染。 如何仅在最后一次调用XHR complete时更新组件 图像中的示例: 我只需要在完成2个XHR时更新组件,但现在它会在每个XHR完成时更新,并且组件中的最后一个数据来自1个XHR,因为它需要更多的时间来完成 这里有我的componentdid

我正在尝试优化live search组件,主要问题是每次输入更改时都会有大量XHR请求。在添加每封信之后,服务器会收到新的请求,并且请求需要不同的时间才能完成。因此,最新完成的XHR(事实上,它是第一个XHR,因为它通常返回所有数据)发出对组件的渲染。 如何仅在最后一次调用XHR complete时更新组件

图像中的示例: 我只需要在完成2个XHR时更新组件,但现在它会在每个XHR完成时更新,并且组件中的最后一个数据来自1个XHR,因为它需要更多的时间来完成

这里有我的
componentdiddupdate
方法:

componentDidUpdate(prevProps) {
    if (!isEqual(this.props.userFilterData, prevProps.userFilterData)) {
        const {
            userFilterData,
            initPagination
        } = this.props;
        user
            .find(userFilterData)
            .then(() => initPagination(user.selectors.find(userFilterData)));
    }
}

而不是在每次输入更改时触发搜索请求。您应该删除该事件,以便XHR仅触发一次pex ms(300-400ms)。为了确保只呈现最后一个XHR请求,您应该取消之前激发的请求


如果您使用的是axios,则可以请求每个文档。其他LIB可能有不同的方法,而不是在每次输入更改时触发搜索请求。您应该删除该事件,以便XHR仅触发一次pex ms(300-400ms)。为了确保只呈现最后一个XHR请求,您应该取消之前激发的请求


如果您使用的是axios,则可以请求每个文档。其他lib可能有不同的方法

谢谢,我创建了一个取消公告的函数,现在更改后只发送一个响应,但是现在,React不在响应时更新组件。如何更新组件?通过设置状态?是,在XHR请求中,在您收到需要更新状态的数据后,您需要使用
setState
触发重新渲染。谢谢,我创建了一个取消公告的函数,现在更改后只发送一个响应,但现在,响应时不更新组件。如何更新组件?通过设置状态?在XHR请求中是,在收到数据后,您需要使用
setState