gpt4 book ai didi

reactjs - ReduxReducer 只返回操作的值而不是状态?

转载 作者:行者123 更新时间:2023-12-03 14:04:26 25 4
gpt4 key购买 nike

我有一个Container、一个actionCreator 和一个reducer。在下面的代码中,是什么使Reducer能够返回action.text而不是更新后的状态对象?我认为 reducer 必须始终返回状态。

HelloWorldContainer.jsx

 import { connect } from 'react-redux';
import HelloWorld from '../components/HelloWorld';
import * as actionCreators from '../actions/helloWorldActionCreators';

const mapStateToProps = (state) => ({ name: state.name });

export default connect(mapStateToProps, actionCreators)(HelloWorld);

helloWorldActionCreators.jsx

 import { HELLO_WORLD_NAME_UPDATE } from '../constants/helloWorldConstants';

export const updateName = (text) => ({
type: HELLO_WORLD_NAME_UPDATE,
text,
});

helloWorldReducer.jsx

 import { combineReducers } from 'redux';
import { HELLO_WORLD_NAME_UPDATE } from '../constants/helloWorldConstants';

const name = (state = '', action) => {
switch (action.type) {
case HELLO_WORLD_NAME_UPDATE:
return action.text
default:
return state;
}
};

const mainReducer = combineReducers({ name });

export default mainReducer;

(代码来源:React on Rails)。

最佳答案

名称只是状态的一部分。 action.text 更新后的状态。

combineReducers({ name })之后,状态树如下所示:

{
name: '..'
}

此外,redux 并不限制你只能使用 object 作为你的状态。如果您直接将 name 传递给 createStore() 而不使用 combineReducers,您的整个状态将变成一个纯字符串。

关于reactjs - ReduxReducer 只返回操作的值而不是状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42898002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com