在React / Redux

时间:2017-11-24 23:44:30

标签: javascript reactjs redux

主要问题

我习惯使用React和ES6类。我也习惯将部分代码模块化为单独的函数。我正在查看以下示例,并尝试弄清楚如何将onSubmit的值作为单独的函数。

import React from 'react'
import { connect } from 'react-redux'
import { addTodo } from '../actions'

let AddTodo = ({ dispatch }) => {
  let input

  return (
    <div>
      <form
        onSubmit={e => {
          e.preventDefault()
          if (!input.value.trim()) {
            return
          }
          dispatch(addTodo(input.value))
          input.value = ''
        }}
      >
        <input
          ref={node => {
            input = node
          }}
        />
        <button type="submit">
          Add Todo
        </button>
      </form>
    </div>
  )
}
AddTodo = connect()(AddTodo)

export default AddTodo

我尝试过这样的事情:

import React from 'react'
import { connect } from 'react-redux'
import { addTodo } from '../actions'

function handleSubmit(e){
          e.preventDefault()
          if (!input.value.trim()) {
            return
          }
          dispatch(addTodo(input.value))
          input.value = ''

}

let AddTodo = ({ dispatch }) => {
  let input

  return (
    <div>
      <form onSubmit={e => handleSubmit(e)}>
        <input ref={node => {input = node }}
        />
        <button type="submit">
          Add Todo
        </button>
      </form>
    </div>
  )
}
AddTodo = connect()(AddTodo)

export default AddTodo

但当然它不起作用,因为它不识别输入变量。我可以将输入变量传递给函数,但这似乎不是正确的方法。

问题2:

我不熟悉以下代码所做的事情:

let AddTodo = ({ dispatch }) => {

究竟从哪里发货?是否将dispatch的值传递给匿名函数?

问题3

与以下代码相同:

<input ref={node => {input = node }}

节点的值来自何处以及为什么存储到输入变量中?

0 个答案:

没有答案