2016-08-25 3 views
1

Если у меня есть компонент, как:рефов доступа к югу компоненты в React

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> 
     ) 
    } 
} 

это не работает, потому что похоже, что ссылки ref не переносятся на класс App.

+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

Смежные вопросы