Я недавно начал реагировать / реагировать на родную. Я создаю простое приложение-счетчик, чтобы привыкнуть к библиотекам (используя hooks, redux, immutable.js), и теперь я отчаянно застрял, поскольку «значение счетчика» не обновляется (или, может быть, просто представление неполучить заново?)
На верхнем уровне:
const store = createStore(reduce)
const App = () => {
return (
<Provider store={store}>
<AppContainer />
</Provider>
)
}
Мой редуктор: (у меня есть модульный тест для обновлений состояния, которыйпроходит, поэтому я думаю, что эта часть на самом деле не является проблематичной? :))
const initialState = fromJS({ counter: 0 })
export default function reduce (state = initialState, action) {
switch (action.type) {
case 'INCREMENT':
return state.update('counter', counter => counter + 1)
default:
return state
}
}
export function selectCounter (state) {
return state.get('counter')
}
Мой экран выглядит следующим образом
const HomeScreen = () => {
const count = useSelector(selectCounter)
const dispatch = useDispatch()
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Counter: {count}</Text>
<Button title='test' onClick={() => dispatch({ type: 'INCREMENT' })} />
</View>
)
}
export default HomeScreen
Я был бы глубоко признателен, еслиКто-нибудь может объяснить мне, что я делаю здесь неправильно!
РЕДАКТИРОВАТЬ Я понял: я использовал #onClick
вместо #onPress
внутри моей кнопки ...