Javascript redux状态更改时功能组件未重新呈现

Javascript redux状态更改时功能组件未重新呈现,javascript,reactjs,redux,react-functional-component,Javascript,Reactjs,Redux,React Functional Component,当redux状态更改时,我的一个功能组件没有重新渲染: 选中该复选框后,redux状态将正确更改,但组件不会重新渲染,道具也不会更新 我知道我应该使用钩子,但是现在,我想了解为什么这个组件没有被重新渲染?因为我有一些其他的组件,比如这个,它们可以正确地处理redux状态 Panel9.js: import { connect } from 'react-redux' import { registeredUserInput } from '../../actions' function Pan

当redux状态更改时,我的一个功能组件没有重新渲染:

选中该复选框后,redux状态将正确更改,但组件不会重新渲染,道具也不会更新

我知道我应该使用钩子,但是现在,我想了解为什么这个组件没有被重新渲染?因为我有一些其他的组件,比如这个,它们可以正确地处理redux状态

Panel9.js:

import { connect } from 'react-redux'
import { registeredUserInput } from '../../actions'

function Panel9(props) {
 return (
  <div>
    <input type="checkbox" onClick={(e) => props.registeredUserInput(e.target.checked)}/>
    <span>search key</span>
    <label for="sNum">from</label>
    <input type="number" id="sNum" name="eNum" placeholder="1"/>
    <label for="eNum">to</label>
    <input type="number" id="eNum" name="eNum" placeholder="10000" />
  </div>
 )
}
const mapStateToProps = state => {
 return {
    tableBooleans: state.tableReducer
 }
}

const mapDispatchToProps = dispatch => {
 return {
    registeredUserInput: bool => dispatch(registeredUserInput(bool))
  }
 }

 export default connect(mapStateToProps, mapDispatchToProps)(Panel9)

尝试返回新状态,而不是改变当前状态

case 'REGISTERED_USER_INPUT':  
    return {
        ...state,
        registeredInput: action.bool
    }
当您返回时,只需状态。Redux将忽略任何突变,因为它使用浅比较

请在此处阅读更多:

case 'REGISTERED_USER_INPUT':  
    return {
        ...state,
        registeredInput: action.bool
    }