- реквизит компонентных для детей передаются как значения состояния Родителя.
- Ребенок имеет метод, который вызывает метод родителя, который обновляет состояние родителя.
- Когда состояние родителя обновляется, изменяется одно из значений поддержки ребенка. как в:
<Child prop1={this.state.prop1}>
Каков правильный способ проверить, что этот процесс происходит так, как ожидалось?
Вот пример кода, чтобы сделать проблему яснее:
//App.js
import React, { Component } from 'react';
import Content from './Content';
class App extends Component {
constructor(props){
super(props)
this.state = {
page: 'home',
}
}
gotoAbout(){
this.setState({
page: 'about',
})
}
render() {
return(
<Content page={this.state.page} gotoAbout={this.gotoAbout.bind(this)} />
)
}
}
Как вы можете видеть, родительский компонент App проходит подпорку, и функция, которая может изменить значение, что prop к его дочернему компоненту, Content.
Компонент Content затем сделать что-то вроде этого:
//Content.js
import React, { Component } from 'react';
class Content extends Component {
constructor(props){
super(props)
}
gotoAbout() {
this.props.gotoAbout()
}
render(){
if(this.props.page = 'home'){
return(
<div>
<p>this is the home content</p>
<button onClick={this.gotoAbout}></button>
</div>
)
} else {
return(
<p>this is the about content</p>
)
}
}
}
выше упрощенный пример, но я думаю, что он получает через точку. Каким будет лучший способ написать тест для этого потока компонентов?