2016-09-19 3 views

ответ

3

this.refs.foo не существует на первом рендере, он создается после первого рендера. Вам нужен безопасный по умолчанию, возможно, вынув значение в переменную до возвращения заявления:

export class searchTest Component { 
    render() { 
    var value = this.refs.foo ? this.refs.foo.value : '' 
    return (
     <div> 
     <input ref="foo"/> 
     <Link to={`/stuff/${value}`}> 
      Find recipes! 
     </Link> 
     </div> 
    ); 
    } 
} 

Но даже это не будет работать, если вы не имеете onChange обработчик, прикрепленный к входу. Поскольку у вас есть это прямо сейчас, searchTest не будет перерисовываться при изменении ввода, поэтому пропусковик, переданный в Link, не будет обновляться. То, что вы, вероятно, хотите, чтобы сохранить значение Foo в состоянии searchTest, и ваши Link быть

<Link to={`/stuff/${this.state.foo}`}/> 

вместо использования рефов.

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