重新选择总是重新渲染
Reselect always re rendering
我正在尝试将重新选择添加到我的反应代码中,但它似乎总是在重新渲染。
每次我改变我的状态时,即使输入选择器没有改变,控制台也会打印 "testing"。我创建了一个简单的测试来向你们展示发生了什么。
import { connect } from 'react-redux'
import { createSelector } from 'reselect'
window.testObject = {'x': '5'}
const mapStateToProps = (state, props) => {
const test = state => {return window.testObject}
const getTest = createSelector(test, (t)=> console.log('testing'))
return {
test: getTest(state),
}
}
export default const TestContainer = connect(
mapStateToProps,
)(TestBase)
我做错了什么??我一直在重新阅读文档,据我所知,console.log 第一次后不应该是 运行,因为输入选择器没有改变。我的理解正确吗?
每次重新呈现时您都在调用 createSelector
将 createSelector
移出 mapStateToProps
const getTest = createSelector(...)
const mapStateToProps = (state, props) => ({
test: getTest(state),
})
export default const TestContainer = connect(
mapStateToProps,
)(TestBase)
我正在尝试将重新选择添加到我的反应代码中,但它似乎总是在重新渲染。
每次我改变我的状态时,即使输入选择器没有改变,控制台也会打印 "testing"。我创建了一个简单的测试来向你们展示发生了什么。
import { connect } from 'react-redux'
import { createSelector } from 'reselect'
window.testObject = {'x': '5'}
const mapStateToProps = (state, props) => {
const test = state => {return window.testObject}
const getTest = createSelector(test, (t)=> console.log('testing'))
return {
test: getTest(state),
}
}
export default const TestContainer = connect(
mapStateToProps,
)(TestBase)
我做错了什么??我一直在重新阅读文档,据我所知,console.log 第一次后不应该是 运行,因为输入选择器没有改变。我的理解正确吗?
每次重新呈现时您都在调用 createSelector
将 createSelector
移出 mapStateToProps
const getTest = createSelector(...)
const mapStateToProps = (state, props) => ({
test: getTest(state),
})
export default const TestContainer = connect(
mapStateToProps,
)(TestBase)