Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在React.memo中的'prev'和'curr'的值总是相同?_Javascript_Reactjs_React Redux_React Hooks - Fatal编程技术网

Javascript 为什么在React.memo中的'prev'和'curr'的值总是相同?

Javascript 为什么在React.memo中的'prev'和'curr'的值总是相同?,javascript,reactjs,react-redux,react-hooks,Javascript,Reactjs,React Redux,React Hooks,父组件: const [data, setData] = useState([]); useEffect(() => { const exclusionsWithDeviceNames = Object.values(JSON.parse(JSON.stringify(exclusions))).map(exclusion => { exclusion['deviceNames'] = exclusion.devices.map(deviceId =&g

父组件:

  const [data, setData] = useState([]);

  useEffect(() => {
    const exclusionsWithDeviceNames = Object.values(JSON.parse(JSON.stringify(exclusions))).map(exclusion => {
      exclusion['deviceNames'] = exclusion.devices.map(deviceId =>
        devices[deviceId]
          ? devices[deviceId].name
          : `${t('notAvailable')}: ${t('agentGuidWithId', {guid: deviceId})}`,
      )
      return exclusion
    }, [])
    setData(exclusionsWithDeviceNames)
  }, [exclusions, devices])

 ...
 ...

 <CustomTable
   data={data}
 />
const[data,setData]=useState([]);
useffect(()=>{
const exclusionsWithDeviceNames=Object.values(JSON.parse(JSON.stringify(exclusions))).map(exclusion=>{
排除['deviceNames']=排除.devices.map(deviceId=>
设备[设备ID]
?设备[deviceId]。名称
:`${t('notAvailable')}:${t('agentGuidWithId',{guid:deviceId})}`,
)
退货排除
}, [])
设置数据(排除开关设备名称)
},[除外条款、设备])
...
...
自定义组件:

const areEqual = (prev, curr) => {
  if (
    curr.devicesSelected === prev.devicesSelected &&
    (isEmpty(xorWith(curr.data, prev.data, isEqual)) ||
      curr.columns === prev.columns)
  ) {
    return true
  } else return false
}
class CustomTable extends React.Component<Props> {
  public render() {
    const {data} = this.props
    return (
      <MUIDataTable
        data={data}
      />
    )
  }
}
export const CustomTable = withStyles(styles)(
  React.memo(CustomTable, areEqual),
)
const areEqual=(上一个,当前)=>{
如果(
当前设备已选===上一个设备已选&&
(isEmpty(xorWith(curr.data,prev.data,isEqual))||
当前列===上一列)
) {
返回真值
}否则返回false
}
类CustomTable扩展了React.Component{
公共渲染(){
const{data}=this.props
返回(
)
}
}
export const CustomTable=带有样式(样式)(
反应备忘录(CustomTable,areEqual),
)
areEqual
函数中,我不断得到相同的prev和curr值。。。 谁能帮我理解为什么