используя локальное состояние для входного значения с избыточным хранилищем - PullRequest
1 голос
/ 29 сентября 2019

Я начал изучать редукс, и у меня возник следующий вопрос.поэтому у меня есть хранилище с исходным состоянием и у меня также есть компонент, который отвечает (отправляет действие) за введенные пользователем данные.поэтому, если входы контролируются, я должен установить их свойство значения в избыточном хранилище (initalState) и отправлять действие каждый раз, когда значение изменяется, или я должен использовать локальное состояние компонента -

 class Calc ...
   constructor(props){
       super(props);
       this.handleChange = this.handleChange.bind(this);
       this.state = {
           inputVal: ''
       }
   }

   handleChange(e){
      this.setState({
         [e.target.name]: e.target.value
      })
   }

   render(){
     return(
          <div>
              <input type="text" name="inputVal" value={this.state.inputVal} onChange={this.handleChange} />
          </div>
     )
   }

Ответы [ 2 ]

2 голосов
/ 29 сентября 2019

Когда компонент подключен к хранилищу Redux, он получает уведомление об изменениях, внесенных в хранилище.

Следовательно, если- два или более компонента выиграют от уведомления об изменениях состояния и- эти компоненты не относятся к типу родительско-дочерних отношений, когда обычно родителю очень легко знать об изменениях, связанных с самим собой и ребенком, а затем сообщать ребенку, что он должен делать, изменяя свои реквизиты

, затем используйте магазин Redux.

Кроме того, может быть совершенно другая ситуация, когда только один (или может быть) несколько (и) компонент (ы) должны быть уведомлены об изменениях навигации, например, пользователь использует кнопки браузера Back / Foward.В таком случае также используйте Redux в сочетании с Router, который автоматически отправляет действие в хранилище Redux с соответствующей полезной нагрузкой.

2 голосов
/ 29 сентября 2019

, на мой взгляд, перед тем, как что-то хранить в хранилище резервов, вы должны задать себе несколько вопросов:

  • , если мое состояние "inputVal" будет совместно использоваться другими компонентами?
  • если изменение моего «inputVal» окажет некоторое влияние на другие компоненты

Если вы получите абсолютный ответ «YES», вам может потребоваться сохранить это состояние «inputVal» в избыточном состоянии.

Если НЕТ, вам НЕ нужно сохранять это состояние в избыточном количестве.Вместо этого просто обработайте состояние внутри вашего компонента "Cal"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...