Проблема:
- Свойства компонента Child передаются как значения состояния Parent.
- У Child есть метод, который вызывает метод Parent, который обновляет состояние Parent.
- Когда состояние Parent обновляется, изменяется одно из значений свойства Child. как в:
<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 передает опору и функцию, которая может изменять значение этой опоры для его дочернего компонента 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>
)
}
}
}
Вышеупомянутый упрощенный пример, но я думаю, что он уловил суть. Как лучше всего написать тест для такого потока компонентов-опор?