我有一个数组[22, 44, 12, 9, 4, 23, 1, 11, 10, 5, 2, 123],我需要使用reduce来创建一个如下所示的对象:
{
numbersLessThanTen: [...],
numbersGreaterThanTen: [...]
}Run Code Online (Sandbox Code Playgroud)
我有解决方案,如下:
const listOfNumbers = [22, 44, 12, 9, 4, 23, 1, 11, 10, 5, 2, 123];
const groupedBySize = listOfNumbers.reduce((total, next) => {
const less = total.numbersLessThanTen || [];
const more = total.numbersGreaterThanTen || [];
next > 10 ? total.numbersGreaterThanTen = [].concat(more, next) : total.numbersLessThanTen = [].concat(less, next);
return total;
}, {});Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么以下不起作用?它只返回初始值.当我使用.push()而不是.concat()时,它可以正常工作,但我真的很想知道为什么这种方式不起作用.谢谢!
const groupedBySize = listOfNumbers.reduce((total, next) => { …Run Code Online (Sandbox Code Playgroud)我尝试在此组件中使用 3 个操作。一个使我退出 Firebase Google Auth(正常工作),另外两个只是将一段状态更改为某个字符串,稍后我将使用该字符串来确定要渲染的组件。
注释掉的mapDispatchToProps工作正常,这就是我习惯的编写方式,使用注销方法的语法是我无法弄清楚的。如何重构以下内容以便 setRoutines 和 setExercises 工作?
组件:
import React from 'react';
import { connect } from "react-redux";
import { firebaseLogout } from '../Auth/Auth.actions';
import { setRoutines, setExercises } from './Profile.actions';
const Profile = ({logout, setRoutines, setExercises}) => (
<React.Fragment>
<button onClick={setRoutines}>My Routines</button>
<button onClick={setExercises}>My Exercises</button>
<button onClick={logout}>Logout</button>
</React.Fragment>
);
const mapDispatchToProps = (dispatch) => ({
logout: () => dispatch(firebaseLogout()),
setRoutines,
setExercises,
});
// const mapDispatchToProps = {
// setRoutines,
// setExercises
// };
export default …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 React/Redux 应用程序,它使用 Firebase Auth/Firestore 来跟踪用户的健身锻炼。我有 Redux Form 来处理数据提交,并且我有以下想要在 Firestore 中实现的示例数据结构:
users {
id {
name: 'John Smith'
uid: 'k1s7fxo9oe2ls9u' (comes from Firebase Auth)
exercises: {
{
name: 'Bench Press',
sets: 3,
reps: 10,
lbs: 100,
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何不断将新的练习对象添加到练习子集合中(在 Firestore 中,我猜这将是地图的字段类型)。我想做的是当用户提交新表单时在“练习”中添加新对象。例如,如果用户想要添加硬拉练习,则如下所示:
users {
id {
name: 'John Smith'
uid: 'k1s7fxo9oe2ls9u' (comes from Firebase Auth)
exercises: {
{
name: 'Bench Press',
sets: 3,
reps: 10,
lbs: 100,
},
{
name: 'Deadlift',
sets: 3,
reps: 12,
lbs: 120,
}
} …Run Code Online (Sandbox Code Playgroud) javascript firebase reactjs react-redux google-cloud-firestore
javascript ×3
react-redux ×2
reactjs ×2
arrays ×1
ecmascript-6 ×1
firebase ×1
reduce ×1
redux ×1