Javascript 如何分解对象以从方法检索返回值?
我在使用不变性和redux,我面临的问题并不严重,但如果有解决方案,那就太好了。答案可能很傻,但由于我是ES新手,我在想我们如何才能做到这一点 下面是我的减速机:Javascript 如何分解对象以从方法检索返回值?,javascript,ecmascript-6,redux,immutability,destructuring,Javascript,Ecmascript 6,Redux,Immutability,Destructuring,我在使用不变性和redux,我面临的问题并不严重,但如果有解决方案,那就太好了。答案可能很傻,但由于我是ES新手,我在想我们如何才能做到这一点 下面是我的减速机: import Immutable from 'immutable'; import { TODOYO } from '../constants/action-types'; const initialState = Immutable.Map({ message: null, }); export default functi
import Immutable from 'immutable';
import { TODOYO } from '../constants/action-types';
const initialState = Immutable.Map({
message: null,
});
export default function todos(state = initialState, action) {
switch (action.type) {
case TODOYO:
return state.set('message', action.payload);
default:
return state;
}
}
下面是组件中的MapStateTops函数:
function mapStateToProps(state) {
const message = state.todos.get('message');
return {
message,
};
}
如何分解状态
以检索消息
我是这样想的:
const {
todos: {
message: get('message')
}
} = state;
这是错误的。是否有方法检索消息?如果您的状态键中没有
消息
,则可以使用语法执行此操作。如果消息确实作为属性存在于您的状态中,则默认值将被覆盖。所以要小心使用
function mapStateToProps({ todos, message = todos.get('message') }) {
return {
message,
};
}
您还可以将mapstatetops
缩短为箭头函数:
const mapStateToProps = ({ todos, message = todos.get('message') }) => ({
message
});
这是不可能的。只能对数组/对象进行分解,而不能在分解中执行函数 destructuring assignment语法是一个JavaScript表达式,它可以将数组或对象中的数据提取到不同的变量中
很有趣。谢谢。这样做很好,比如
const{length,firstLetters:substring(0,5)}=string代码>国际海事组织。