[英]Bind text input value on change event - React Native + Redux
我正在React Native和Redux中創建表單。 我添加了TextInput
並希望在Reducer中更改此字段的狀態。 我遇到了麻煩,因為我不知道如何在Redux架構中添加(change) => this.setState({change})
函數。 我使用組合減速器,卻不知道如何綁定該值。 簡而言之,我需要獲得TextInput
上TextInput
默認行為,但我必須使用Redux來做到這一點。
Form.js
const mapDispatchToProps = dispatch => {
return {
changeNameInput: () => dispatch({type: 'CHANGE_NAME_INPUT'})
};
};
const mapStateToProps = state => {
return {
change: state.changeNameInput.change
};
};
class Form extends React.Component {
render() {
return (
<View>
<FormLabel>Name</FormLabel>
<TextInput
onChangeText={this.props.changeNameInput}
value={this.props.change}
/>
</View>
);
}
}
Reducer.js
const initialState = {
change: 'Your name'
};
const changeinputReducer = (state = initialState, action) => {
switch (action.type) {
case 'CHANGE_NAME_INPUT':
//Problem
return {...state, change: '????' };
default:
return state;
}
};
export default changeinputReducer;
為了將值從TextInput傳遞給reducer,您需要更改dispatch函數:
const mapDispatchToProps = dispatch => {
return {
changeNameInput: (text) => dispatch({type: 'CHANGE_NAME_INPUT', text})
};
};
並在您的減速器中將其更改為
const changeinputReducer = (state = initialState, action) => {
switch (action.type) {
case 'CHANGE_NAME_INPUT':
//Solution
return {...state, change: action.text };
default:
return state;
}
};
希望它能工作..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.