Reactに1つまたは他のコンポーネントを表示しようとしています。クリックでコンポーネントを表示することはできますが、他のコンポーネントを表示することはできません。それは'true'の場合はコンポーネントを表示し、そうでない場合は他のコンポーネントを表示します(0123)。
それが必要などなく、状態は
showPriceCalculator: true
に設定してあるした後
<VVSFeatures />
を示す負荷に
import React, { Component } from 'react'
import { Motion, spring } from 'react-motion'
import Header from '../../components/services/Header'
import ServiceSelector from '../../components/services/ServiceSelector'
import PriceCalculator from '../../components/services/PriceCalculator'
import VVSRequest from '../../components/services/VvsRequest'
import VVSFeatures from '../../components/services/VVSFeatures'
import GalleryPreview from '../../components/services/GalleryPreview'
import Footer from '../../components/services/Footer'
require('styles/_servicesPage/services.css')
require('styles/_servicesPage/serviceSelector.css')
var ReactCSSTransitionGroup = require('react-addons-css-transition-group');
export default class Services extends Component {
componentWillMount() {
this.state = {
showPriceCalculator: false
}
}
handleClick(e) {
const userChoice = e.target.className
this.setState({ userChoice })
}
toggleDiv(toggle) {
console.log('te',toggle);
this.setState({showPriceCalculator: toggle})
}
render() {
var styleVar = {
backgroundImage: 'url(assets/images/services/service_bg.jpg)'
}
return (
<div>
<Header />
<ServiceSelector toggleDiv={this.toggleDiv.bind(this)}/>
{this.state.showPriceCalculator ?
<PriceCalculator toggleDiv={this.toggleDiv.bind(this)}/> : <VVSFeatures />}
{/*<VVSFeatures />
<VVSRequest />*/}
<GalleryPreview />
<Footer />
</div>
)
}
}
:
コードを反応させもう一度falseに設定すると、noth
正しい状態値で元に戻りますが、何も起こりません。 何が間違っている可能性がありますか?
ありがとうございます!
すなわち、文字列、パラメータとして「真」に値を設定していないあなたは状態が正しいか100%か?また、私はあなたが 'handleClick'を使っているところは分かりませんが、' this.setState({userChoice}) 'はあなたの状態を上書きしているかもしれません。たぶん、レンダリングの中の状態のconsole.logを入れて、すべての点でそれを確認して再確認することができますか?コードをfalseに戻す部分はどこですか? – ajmajmajma
「それは正しい状態で再び現れます」ということをどうやって知っていますか? 'render(){'の後に 'console.log( 'showPriceCalculator:'、this.state.showPriceCalculator)'を実行し、正しい値が表示されたら教えてください。 –
はい私はrenderメソッド内で状態をログアウトし、ServiceSelectorからtrueを設定するとtrueを出力し、PriceCalculatorコンポーネントからfalseに設定するとfalseを出力しました。 – AlfredO