Родитель условно рендерит компонент с уникальным реквизитом.Тройка внутри функции визуализации ребенка, получающего эти реквизиты, не работает должным образом.
Я использовал componentWillRecieveProps для setState и пытаюсь позволить троичной основе основываться на состоянии.И, после исследования, я изменил свой код для использования функции getDerivedStateFromProps (так как componentWillRecieveProps считается небезопасным?) Код выглядит следующим образом.
Кроме того, я знаю, что компонент получил реквизиты правильно, и это состояние обновляется до правильногозначение (из-за console.logs);
class AppearTyping extends React.Component {
constructor(props) {
super(props);
this.state = {
underscore: '',
header: true
}
}
.
.
.
static getDerivedStateFromProps(props, currentState) {
if (currentState.header !== props.header) {
return {
header: props.header,
}
}
return null
}
render() {
let display = this.props.paragraph.join('');
console.log(this.state.header);
return (
<div>
{this.state.header ? <h2 className="about white">{display}
{this.state.underscore}</h2> : <p className="about white">{display}</p>}
</div>
)
}
}
Если компонент получает prop: header = true
, я хочу, чтобы {display}
и {this.state.underscore}
были обернуты в теги h2
.В противном случае я хочу, чтобы компонент был обернут в теги p
.