Reactjs 如何发送组件';s状态作为要存储的有效负载

Reactjs 如何发送组件';s状态作为要存储的有效负载,reactjs,redux,react-redux,redux-saga,Reactjs,Redux,React Redux,Redux Saga,我是Redux的新手,所以我可能在某个地方错过了这一部分。 我有一个React.Component和一个redux saga存储库,其中包含动作开始和停止。我想做的是将组件的状态作为有效负载发送,以将其保存在redux存储中,但它无法按我的方式工作 let PAYLOAD = {} class App extends Component { constructor(props) { super(props) this.state = { data: [],

我是Redux的新手,所以我可能在某个地方错过了这一部分。 我有一个React.Component和一个redux saga存储库,其中包含动作开始和停止。我想做的是将组件的状态作为有效负载发送,以将其保存在redux存储中,但它无法按我的方式工作

let PAYLOAD = {}

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      data: [],
    }
  }

  /* some functions */

  render() {
    const { data } = this.state

    PAYLOAD = data
    return (
      <div />
    )
  }
}

function action(type, payload = {}) {
  return { type, ...payload }
}

export const START = () => action('START', PAYLOAD)
export const STOP = () => action('STOP', PAYLOAD)

const mapStateToProps = state => ({
  data: state.data,
})

const mapDispatchToProps = {
  start: START,
  stop: STOP,
}

export default connect(mapStateToProps, mapDispatchToProps)(App)
let PAYLOAD={}
类应用程序扩展组件{
建造师(道具){
超级(道具)
此.state={
数据:[],
}
}
/*一些功能*/
render(){
const{data}=this.state
有效载荷=数据
返回(
)
}
}
函数操作(类型,有效负载={}){
返回{type,…payload}
}
export const START=()=>操作('START',有效负载)
导出常量停止=()=>操作('STOP',有效负载)
常量mapStateToProps=状态=>({
数据:state.data,
})
const mapDispatchToProps={
开始:开始,
停:停,,
}
导出默认连接(mapStateToProps、mapDispatchToProps)(应用程序)

我得到的是[],因为它是在reducers中初始化的

丢失了初始let语句。这样定义它意味着您将始终只发送初始值,因为定义action creators函数时,该值就是初始值

您应该定义动作创建者,以便它们可以接收参数:

export const START = payload => action('START', payload)
export const STOP = payload => action('STOP', payload)
然后,您的
mapDispatchToProps
将这些函数传递到组件的道具上,以便您可以调用它们:

  render() {
    const { data } = this.state
    const { start, stop } = this.props

    start(data)
    stop(data)
    return (
      <div />
    )
  }
render(){
const{data}=this.state
const{start,stop}=this.props
开始(数据)
停止(数据)
返回(
)
}
请记住,此示例在每次渲染时同时调用“开始”和“停止”,请确保仅在需要时才调用它们