我最近开始接触本机/本机。 我构建了一个简单的计数器应用程序以习惯于库(使用钩子,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