1
我有一個容器組件React - Redux:如何將它綁定到es6中的父容器?
import { AddQuest } from '../components/AddQuest.jsx'
import { connect } from 'react-redux'
import { addQuestActionCreator } from '../actions.js'
const mapStateToProp = (
dispatch,
ownProps
) => {
return {
onClick:() => {
console.log(this);// <-- this represents the window object instead the AddQuest component
dispatch(addQuestActionCreator(this.input.value)); //<-- throws : Uncaught TypeError: Cannot read property 'value' of undefined
this.input.value = '';
}
}
}
export const AddQuestContainer = connect(
undefined,
mapStateToProp
)(AddQuest);
和表象的成分
import React from 'react'
import { connect } from 'react-redux'
import { addQuestActionCreator } from '../actions.js'
export const AddQuest = ({onClick}) => {
let input;
return(
<div>
<input type="text" ref={
node =>{
input = node;
}
}/>
<button onClick={onClick.bind(this)}>Add quest</button>
</div>
)
};
但每次我點擊我的按鈕來添加一個任務。我有這個錯誤Uncaught TypeError: Cannot read property 'value' of undefined.
我對bind(this)的理解有些問題。我認爲這會將展示組件的參考傳遞給容器組件。
爲什麼不是這樣?
Redux的鼓勵此類使用的本地狀態的重寫你的榜樣。您可以將合成事件或提取的值傳遞給處理程序 - 很可能您的輸入沒有複雜的結構,它只是一個文本。在另一種情況下,您可以使用redux-form組件來處理這個問題。 –