Grz*_*nia 3 javascript reactjs
在WeatherForecast组件中,我需要将函数的返回值传递appColor给属性.然后从属性WeatherForecast需要被传递到className的app组件.新的反应.不确定如何将属性从子节点传递给组件.
class WeatherForecast extends Component {
appColor(weatherData) {
//Check for condition and return value
return "example-color1"
}
render() {
/************************************
// Need to Pass returned value of Function into propery or variable?
/************************************/
let bgColor = appColor(weatherData);
return (
<div className="text-center col-xs-12">
<h1 id="temp">{this.displayTemp(this.props.weather)}</h1>
<h1>{this.displayCity(this.props.weather)}</h1>
</div>
);
}
}
export default class App extends Component {
render() {
return (
<div className={"app-container" + this.AppColorPropertyClass}>
<div className="main-wrapper">
<WeatherForecast bgColorPropertyClass={this.AppColorPropertyClass} />
</div>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将一个函数从父级传递给子级,子级可以使用该颜色调用该函数(几乎像事件处理程序一样运行).当在App中收到颜色时,使用.setState()将其指定为状态值,然后在render()中将其拾取
export default class App extends Component {
constructor(props) {
super(props);
this.state = { appColorClass: 'some-default-color' };
}
setAppColor(colorClass) {
this.setState({ appColorClass: colorClass });
}
render() {
return (
<div className={"app-container" + this.state.appColorClass}>
<div className="main-wrapper">
<WeatherForecast getBgColorPropertyClass={ color => this.setAppColor(color) } />
</div>
</div>
);
}
}
class WeatherForecast extends Component {
componentWillMount() {
if (this.props.getBgColorPropertyClass) {
// TODO: Get "weatherData" from somewhere (maybe from this.props.weather ??)
this.props.getBgColorPropertyClass(this.appColor(weatherData));
}
}
appColor(weatherData) {
//Check for condition and return value
return "example-color1"
}
render() {
return (
<div className="text-center col-xs-12">
<h1 id="temp">{this.displayTemp(this.props.weather)}</h1>
<h1>{this.displayCity(this.props.weather)}</h1>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7928 次 |
| 最近记录: |