, поэтому я пытаюсь создать простые страницы, которые запрашивают ввод и предоставляют кнопку.когда кнопка нажата, страницы должны предупредить значение ввода.но не беря значение из поля ввода ..
, поэтому значение поля ввода должно быть сохранено в резервном хранилище, а при получении предупреждения значение берется из хранилища.
, но когда язапустить мои коды, он выдает ошибку, говоря, что undefined не является функцией
это мой код:
import React, {Component} from 'react';
import {View, TextInput, TouchableOpacity, Text} from 'react-native';
import {connect} from 'react-redux';
class tes extends Component{
constructor(props){
super(props)
state = {
phoneNumber: "",
}
}
login() {
this.props.onLogin(this.state.phoneNumber)
alert(this.props.reducer.phoneNumber)
}
render(){
return(
<View>
<TextInput placeholder="phone number"
keyboardType="number-pad" onChangeText={phoneNumber => this.setState({ phoneNumber })}/>
<TouchableOpacity onPress={this.login}>
<Text>login</Text>
</TouchableOpacity>
</View>
)}
}
mapStateToProps = (state) => {
return {
number: state.reducer
}
}
mapDispatchToProps = (dispatch) => {
return {
onLogin: (number) => {
dispatch({
type: "LOGIN",
payload: number
})
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(tes);
в классе действий:
export default function setLoginNumber(number) {
return{
type: "LOGIN",
payload: number
};
}
thisмой класс редуктора:
const reducer = (state = {
phoneNumber: '',
},action) => {
switch(action.type) {
case "LOGIN":
state = {
phoneNumber: action.payload
}
break;
}
return state;
}
export default reducer;
и мой класс магазина, в котором я создаю хранилище с использованием приставки:
import { createStore , applyMiddleware } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import reducer from './Reducer';
import thunk from 'redux-thunk';
const store = () => {
return createStore(reducer, composeWithDevTools(applyMiddleware(thunk)));
}
export default store
Вот ошибка, показанная эмулятором
ошибка эмулятора
Кто-нибудь может мне помочь с этой ошибкой?заранее спасибо