2016-08-25 49 views
1

如果我有這樣一個組成部分:訪問裁判在作出反應

class Sliders extends React.Component { 
    render() { 
    return (
     <div> 
     <Slider ref="first" update={this.props.update} /> 
     <Slider ref="second" update={this.props.update} /> 
     <Slider ref="third" update={this.props.update} /> 
     </div> 
    ) 
    } 
} 

,我想設置一個使用它的裁判訪問值,是有辦法做到這一點的另一個組成部分?

class App extends React.Component { 
    sliderUpdate(){ 
     console.log(ReactDOM.findDOMNode(this.refs.third).value) 
    } 
    render() { 
     return (
      <div> 
       <Sliders update={this.sliderUpdate} /> 
      </div> 
     ) 
    } 
} 

這不起作用,因爲它看起來像裁判不會繼承到應用程序類。

+0

聲明返回裁判的值的函數..然後通過道具來訪問返回它的功能 –

+0

你有沒有我可以看一個例子嗎?這對我來說很難掌握 – Rob

+0

,所以你說我的updateFunction會把當前的ref作爲參數? – Rob

回答

1

這可以不使用refs來解決。

示例代碼將是如下,

const handleChange = (val) => (
    console.log(val) 
) 
const Application =() => (
    <div> 
    <Slider handleChange={handleChange} /> 
    </div> 
); 

const Slider = (props) => (
    <div> 
    <input type="text" placeholder="typesomething" onChange={(e) => props.handleChange(e.target.value)}></input> 
    </div> 
) 

入住這codepen