我有一个redux连接组件,它在areStatesEqual
api的options
参数中使用redux connect
来避免重新渲染。
shouldComponentUpdate
执行相同的工作,但在我的用例中速度慢了很多。
我正在努力测试多个状态更新,声称在某些条件下该组件认为状态是相等的,并且不应该重新渲染。
我正在将react-mock-store
用于其他组件,但这只涉及静态而不是动态。还使用摩卡&其他地方也有酶。
有没有人有任何想法我如何测试这种行为?
(这是更复杂的组件的简化版)
import { connect } from 'react-redux';
import { compose } from 'redux';
import MyComponent from './my-component';
const mapStateToProps = (state, props) => ({
text: state.a.text[props.id],
});
const areStatesEqual = (next, prev) => {
return next.a === prev.a;
};
const options = { areStatesEqual };
export default connect(mapStateToProps, undefined, undefined, options)(MyComponent);
MyComponent是一个简单的功能组件,只接受道具和渲染:
export default function Label({ text }) {
return <p>{text}</p>;
}
答案 0 :(得分:0)
最后,我设法通过导出areStatesEqual
函数并进行简单测试来测试逻辑。
export const areStatesEqual = (next, prev) => {
return next.a === prev.a;
};
我还没有找到一种方法来测试组件生命周期的流程