如何在redux连接组件

时间:2018-03-08 10:54:49

标签: javascript reactjs redux

我有一个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>;
}

1 个答案:

答案 0 :(得分:0)

最后,我设法通过导出areStatesEqual函数并进行简单测试来测试逻辑。

export const areStatesEqual = (next, prev) => {
  return next.a === prev.a;
};

我还没有找到一种方法来测试组件生命周期的流程