Использование Java LinkedList [дубликат]

Прежде всего, вам не нужно делать var r = this;, поскольку это в if statement относится к контексту самого обратного вызова, который, поскольку вы используете функцию стрелки, ссылается на контекст компонента React.

к документам:

объекты истории обычно имеют следующие свойства и методы:

  • length - (number) Число записей в стеке истории
  • action - (string) Текущее действие (PUSH, REPLACE или POP)
  • location - (object) Текущее местоположение. Может иметь следующие свойства: pathname - (string) Путь поиска по URL - (строка) Строка запроса URL-адреса hash - (строка) Состояние хэш-фрагмента URL-адреса (строка), определяющее местоположение, которое было предоставлено, например, push (путь, состояние), когда это место было перенесено в стек. Доступно только в истории браузера и памяти.
  • push (путь, [состояние]) - (функция) Вставляет новую запись в стек истории
  • replace (путь, [состояние]) - (функция) Заменяет текущую запись на стек истории
  • go (n) - (функция) Перемещает указатель в стек истории на n записей
  • goBack () - (функция) Эквивалент go (-1)
  • goForward () - (функция) Эквивалент go (1)
  • block (prompt) - (функция) Предотвращает навигация

Таким образом, во время навигации вы можете передать реквизит для объекта истории, например

this.props.history.push({
  pathname: '/template',
  search: '?query=abc',
  state: { detail: response.data }
})

или аналогично для компонента связи

<Link to={{
      pathname: '/template',
      search: '?query=abc',
      state: { detail: response.data }
    }}> My Link </Link>

, а затем в компоненте, который отображается с помощью /template, вы можете получить доступ к реквизитам, переданным как

this.props.location.state.detail

Также имейте в виду, что при использовании объектов истории или местоположения из реквизита вам необходимо подключить компонент с помощью withRouter.

В соответствии с Документами:

withRouter

Вы можете получить доступ к свойствам объекта истории и ближайшему совпадению <Route>'s через withRouter h компонент более высокого порядка. withRouter будет повторно отображать свой компонент каждый раз, когда маршрут изменяется с теми же реквизитами, что и <Route> render props: { match, location, history }.

3
задан allyourcode 21 October 2012 в 23:51
поделиться

3 ответа

С java.util.LinkedList единственный способ ссылаться на места в списке для более эффективной эффективной манипуляции - это итератор, а итераторы являются недействительными, если базовый список изменен чем-то другим, кроме этого итератора.

Если вам действительно нужна эта возможность, вам придется смотреть за пределы API Java или писать сами.

1
ответ дан meriton 27 August 2018 в 02:12
поделиться

Вы можете делать смешные вещи с помощью List.subList(startIndex, endIndex). С этим вы можете очистить весь диапазон в списке «источник». Вы также можете использовать addAll в подсписке, чтобы вставить новый материал в исходный список.

Если LinkedList имеет эффективную реализацию для этого - я не знаю.

2
ответ дан A.H. 27 August 2018 в 02:12
поделиться

Если вы удаляете что-то с помощью итератора, вы не можете продолжать использовать тот же самый итератор. Можно сделать

iterator.remove();
iterator.next();
iterator.remove();
iterator.next();

. Это самое близкое, насколько я знаю.

2
ответ дан Simon 27 August 2018 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: