当React-Redux中的redux状态发生变化时,如何将redux状态指定为反应状态?

时间:2017-06-14 13:38:58

标签: javascript reactjs redux react-redux

我通过触发表单组件中的操作来更新redux状态。更新后的状态将从同一Component中的mapStateToProps读取。现在我的问题是如何将更新的redux状态分配给Component中的现有反应状态。

提前致谢

4 个答案:

答案 0 :(得分:1)

您可以使用componentWillReceiveProps处理程序。

  SELECT * FROM    
 (SELECT PRJSTAT_ID, PRJSTAT_PRJA_ID, PRJSTAT_STATUS, PRJSTAT_DATE, 
 ROW_NUMBER() OVER (PARTITION BY PRJSTAT_PRJA_ID ORDER BY PRJSTAT_DATE DESC)
 AS SEQ,
 ROW_NUMBER() OVER (PARTITION BY PRJSTAT_PRJA_ID ORDER BY PRJSTAT_PRJA_ID
 DESC) AS IDSEQ
 From Project_Status
 )PR
 WHERE SEQ = 1
 AND IDSEQ = 1

答案 1 :(得分:0)

您可以使用Component的setState方法,并使用已更改的属性传递给它。

答案 2 :(得分:0)

如果你真的想这样做,你可能想要componentWillReceiveProps组件功能,并使用this.setState实际分配这些值。

但是你必须小心处理两个应用程序状态。理想情况下,组件应该只能接收道具并转换或显示它们。换句话说,我们应该避免让组件处于状态。

查看stateless components

答案 3 :(得分:0)

在您设置新状态的地方调用mapStateToProps componentWillRecieveProps之后。

Observable<List<StoreModel>> publish = userStores()
        .toObservable()
        .publish(userStores ->
                Single.zip(
                    userFavouriteStores(userStores.singleOrError()),
                    userOtherStores(userStores.singleOrError()),
                    (favoriteStores, otherStores) -> {
                         favoriteStores.addAll(otherStores);
                         return favoriteStores;
                    }
                )
                    .toObservable()
        );
/**
 * Created by consultadd on 22/2/17.
 */

import React, { Component } from 'react'
import Head from 'next/head'
import { Router } from '../../../routes'
import { connect } from 'react-redux'

export class EventOrderContainer extends Component {

  constructor (props) {
    super(props)
    this.state = {
      orders: [],
      orderpage: 0,
      ShowCancel: false,
    }
  }
    componentWillRecieveProps(newProps){
    
    this.setState({
    orderpage:newProps.ordersPage})
    
    
    
    }

 

  render () {

    return (


    )
  }
}
const mapStateToProps = (state) => {

  return {
    ordersPage:state.orders.ordersPage
  }

  return state
}
const mapDispatchToProps = (dispatch) => {
  
  
}

export default connect(mapStateToProps, mapDispatchToProps)(EventOrderContainer)