добавить пользовательское свойство в props.location - PullRequest
2 голосов
/ 27 мая 2019

Используя React и Javacript, допустимо ли добавлять пользовательское свойство в props.location при передаче его через props.history.push?например,

this.props.history.push({
  pathname: '/someurl',
  state: {smallObject: myObject},
  customProperty : myBiggerObject
});

А затем в компоненте, который загружается в / someurl, я могу загрузить: let myBigObj = this.props.location.customProperty;

Это работает, и я спрашиваю, "нормально" лиделать?Я обеспокоен тем, что могу пропустить что-то в Javascript или React, о котором мне ничего не известно.

Я бы передал customProperty в свойстве состояния, если бы передаваемый мною объект был достаточно маленьким.Это не так: он превышает ограничение в 640 КБ, указанное здесь , и я получаю сообщение об ошибке, указывающее, что данные не могут быть клонированы, если я передам myBiggerObject в свойстве state.

1 Ответ

1 голос
/ 27 мая 2019

Вот ссылка для документации API

history.push(path, [state])

// Push a new entry onto the history stack.
history.push('/home');

// Push a new entry onto the history stack with a query string
// and some state. Location state does not appear in the URL.
history.push('/home?the=query', { some: 'state' });

// If you prefer, use a single location-like object to specify both
// the URL and state. This is equivalent to the example above.
history.push({
  pathname: '/home',
  search: '?the=query',
  state: { some: 'state' }
});

// Go back to the previous history entry. The following
// two lines are synonymous.
history.go(-1);
history.goBack();

Примечание. Состояние местоположения поддерживается только в createBrowserHistory и createMemoryHistory.

...