====== react-redux ======
>npm install react-redux
SyntaxError: C:\Users\Ryu\react\expo-redux\App.js: Only one default export allowed per module.
>npm install redux
===== 1.stateを使った状態 =====
import React from 'react';
import { StyleSheet, Text, View , TouchableOpacity ,Button ,TextInput} from 'react-native';
export default class App extends React.Component {
constructor(props){
super(props)
this.state = {
count: 0,
name:'hogehoge'
};
}
pressPlus(e){
this.setState({count:this.state.count+1})
}
pressMinuss(e){
this.setState({count:this.state.count-1})
}
changeName(e){
this.setState(({name:e}))
}
render() {
return (
Redux Sample
this.pressPlus(e)} >
count plus
this.pressMinuss(e)} >
count minus
this.changeName(e)}>
{this.state.name}
count:{this.state.count}
name:{this.state.name}
);
}
}
const styles = StyleSheet.create({
view:{
flex: 1,
alignItems: 'center',
justifyContent: 'center',
margin:10,
},
button: {
width: 200,
height: 40,
margin: 5 ,
backgroundColor: 'lightblue',
justifyContent: 'center',
alignItems: 'center',
},
input: {
width: 200,
height: 40,
margin: 5 ,
backgroundColor: '#f5f5f5',
borderColor : 'black',
justifyContent: 'center',
alignItems: 'center',
},
}
);
{{:reactnative:pasted:20190131-062021.png}}
==== エラー1 ====
Invariant Violation: Could not find "store" in the context of "Connect(App)". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to Connect(App) in connect options.
expoを使っているとApp.jsがエントリーポイントだった。
==== エラー2 ====
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.
インポート元を間違っていた…
x import {Provider} from 'react-native'
o import {Provider} from 'react-redux'
==== エラー3 ====
TypeError: Cannot read property 'getState' of undefined
いつの間にかエラーが消えてしまったがProviderとstateあたりが問題だった
import React from 'react';
import { createStore, combineReducers } from 'redux';
import { Provider } from 'react-redux'
import Container from './components/Container'
import countReducerValue from './reducers/countReducer'
import nameReducerValue from './reducers/nameReducer'
const rootReducer = combineReducers({
count: countReducerValue,
name: nameReducerValue,
})
const store = createStore(rootReducer)
export default class App extends React.Component {
render(){
// console.log("App.render()")
// store.subscribe(() => console.log("xxxx:" + store.getState()))
return(
)
}
}