замена динамических c строковых ссылок на useRef в хуках для небольших сложных сценариев - PullRequest
1 голос
/ 17 февраля 2020

У меня есть компонент на основе класса реагирования с использованием динамических c ссылок. Мне нужно реорганизовать этот код для перехвата, используя useRef динамически.

export default class App extends Component {

   navigate(item) {
    if (item === 'home') {
      Object.keys(this.refs).map(function(ref) {
        if (ref.endsWith('ul') && !ref.startsWith(item)) {
          this.refs[ref].style.borderLeftColor = '#fff';
        }
      }, this);
      this.context.router.history.replace('/');
    } 
    }
  }

  render() {
    const {item} = this.props;
    return (
      <div>
        <ul ref={item + 'ul'} onClick={() => { navigate(item);}}>
            <span>{item}</span>
        </ul>
      </div>
    )
  }
}

Как изменить эту строку ref с useRef в перехватчиках, так как она немного запутана, особенно когда задано ref = {item + 'ul'} в качестве строки ref вместо ref = "itemref".

...