我正在使用带有react-redux包的React,并且已经创建了Redux组件。
import React from 'react'
import { connect } from 'react-redux'
class Prova extends React.Component {
constructor(props) {
super(props)
this.state = { ...props }
}
componentDidUpdate(prevProps) {
if (prevProps.errors !== this.props.errors) {
this.setState({
errors: this.props.errors
});
}
}
render() {
const props = this.props.errors ? <div>props: {Object.keys(this.props.errors).map(prop => <div className='props'>{prop}</div>)}</div> : <>NO ERRORS</>
return (
<div>
{props}
</div>
)
}
}
function mapState(state, ownProps) {
return {
}
}
const actionCreators = {
}
const connectedProva = connect(mapState, actionCreators)(Prova)
export { connectedProva as Prova }
我这样称呼这个组件:
<Prova errors={this.state.errors} />
在父组件状态下存储和更新错误的位置。
问题是错误不会在redux的存储状态下更新,而是在组件的状态下更新,并且此值作为“简单”道具传递给Prova组件。但是更新Parent状态不会重新呈现Prova组件。
是否有可能使用Redux组件隐藏传递的道具?仅在首次创建Prova组件时才读取它们。
谢谢
编辑:
最后,我理解了这个问题。 在更新错误状态的父组件中,我并没有破坏错误的上一版本,而是填充了新数据。 现在正在将其更改为:
var errors = { ...prevErrors }
谢谢