如何解决Redux状态更新不会立即/同步映射到道具最佳做法?
我的问题如下:
redux状态更新不会立即映射到道具。这不是指react的useState。我指的是react-redux,其中状态更新应该是同步的afaik。我知道它们可以分批处理,但是不确定在这里是否有用。我认为更新是立即发生的,但映射不是。我不知道该如何解决。我试图在“干净”的环境中复制错误。这是组件:
import React from 'react';
function MyComponent({ title,setTitle }) {
const handleclick = e => {
console.log(title);
setTitle("I don't get it.");
console.log(title);
};
return <p onClick={handleclick}>{title}</p>;
}
export default MyComponent;
这是ComponentContainer:
import React from 'react';
import { connect } from 'react-redux';
import { setTitle } from '../../reducers/customReducer/actions.js';
import MyComponent from './MyComponent.jsx';
export const MyComponentContainer = props => {
return <MyComponent {...props} />;
};
const mapStateToProps = state => {
return {
title: state.customData.title
};
};
const mapDispatchToProps = dispatch => {
return {
setTitle: newTitle => dispatch(setTitle(newTitle))
};
};
export default connect(
mapStateToProps,mapDispatchToProps
)(MyComponentContainer);
我希望第二个console.log
输出值I don't get it
。但事实并非如此。不过,渲染更新会正确进行。意味着innerHTML
元素的p
将被更新并相应地“稍后”呈现。
如何使我可以立即访问更新的值?这在我的实际应用程序中引起了问题。我并不是要在此处简单地打印一些值,而是要更改一个值,然后调用另一个函数,该函数基于更新后的值执行一些操作。由于该值不会立即更改/映射,因此将无法使用。
我正在做不应做的事情吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。