Как подключить реаги и редукс? - PullRequest
1 голос
/ 21 марта 2019

Я новичок в ReactJS. Я пытаюсь использовать ReactJS и Redux вместе.

  1. Кто-нибудь может объяснить, как соединить два?

  2. Кроме того, в редукторном редукторе мы обычно устанавливаем intialState какое-то значение. Как я могу установить значение, которое уже присутствует в состоянии реагирующего компонента, в initialState редуктора?

Ниже приведена инициализация в моем редукторе,

const initialState = {
    pricing:{
        total:0
    },
    appliedPromo:false
}

Ниже мое состояние в компоненте реакции,

state = {
    pricing: {},
    itemDetails: {},
    error: false,
    seeDetails:false,
    showPromoCode:false,
    promocodeApplied:false,
    user_discount:""
  }

Я обновлю состояние, используя axios,

componentDidMount() {
axios
      .get("https://purchsum-fb152.firebaseio.com/data.json")
      .then(response => {
        this.setState({ pricing: response.data.Pricing, itemDetails: response.data.itemDetails });

      })
      .catch(error => {
        this.setState({ error: true });
      });   
}

тогда я подключу состояние к реквизиту,

const mapStateToProps = (state) => {
  return{
    total: state.pricing.total,
    promoApplied: state.appliedPromo
}
}
const mapDispatchToProp = dispatch =>{
  return{
    onDiscount:()=>dispatch({type:"DISCOUNT",value:10,percentage:100})
  } 

}
export default connect(mapStateToProps,mapDispatchToProp)(PurchaseOrder); 

Приложение работает, только если я установил initialState следующим образом,

const initialState = {
    pricing:{
        total:108.03
    },
    appliedPromo:false 
}

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

1 Ответ

0 голосов
/ 21 марта 2019

Я не хочу его устанавливать (без жесткого кода). Взамен хочу редуктор взять значение состояния, которое обновляется в компоненте.

К сожалению, это не шаблон редукции. Вы должны установить начальное состояние для загрузки редуктора - я бы не сказал, что это можно или нужно делать динамически.

Однако, вы не можете создать действие, которое установит состояние, которое вы хотите, когда ваш компонент монтируется?

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