Javascript 从最喜欢的旅行到最不喜欢的旅行
我很难成功地将我的旅行从最多的喜欢分到最少的喜欢。我想使用sort()。我开始尝试将道具从商店传递到myTrip组件。我目前在mytrips中拥有的是,我正在使用map列出我目前所有的旅行。这是一个react redux应用程序。这是我的密码Javascript 从最喜欢的旅行到最不喜欢的旅行,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我很难成功地将我的旅行从最多的喜欢分到最少的喜欢。我想使用sort()。我开始尝试将道具从商店传递到myTrip组件。我目前在mytrips中拥有的是,我正在使用map列出我目前所有的旅行。这是一个react redux应用程序。这是我的密码 import React from 'react' import { connect } from 'react-redux' import TripCard from './TripCard.js' const MyTrips = pro
import React from 'react'
import { connect } from 'react-redux'
import TripCard from './TripCard.js'
const MyTrips = props => {
const tripCards = props.trips.length > 0 ?
props.trips.map(t => <TripCard trip={t} key={t.id}/>) : null
return (
tripcards
)
}
const mapStateToProps = state => {
return {
trips: state.myTrips,
likes: state.mytrips
}
}
export default connect(mapStateToProps)(MyTrips)
**MyTrips Reducer**
const initialState = []
export default (state = initialState, action) => {
switch (action.type) {
case "SET_MY_TRIPS":
return action.trips
case "ADD_TRIP":
return state.concat(action.trip)
case "UPDATE_TRIP":
return state.map(trip => trip.id === action.trip.id ? action.trip : trip)
case "DELETE_TRIP":
return state.filter(trip => trip.id === action.tripId ? false : true)
case "CLEAR_TRIPS":
return initialState
default:
return state
}
}
**AddTripLike Action**
export const addTripLike = (tripData,history) => {
return dispatch => {
const sendableTripData = {
likes: tripData.likes
}
return fetch(`http://localhost:3001/api/v1/trips/${tripData.tripId}/add_likes`, {
credentials: "include",
method: "PATCH",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(sendableTripData)
})
.then(response => response.json())
.then(resp => {
if (resp.error) {
alert(resp.error)
} else {
//window.location.reload();
console.log(resp.data)
dispatch(updateTripSuccess(resp.data))
history.push(`/trips/${resp.data.id}`)
}
})
.catch(console.log)
}
}
从“React”导入React
从“react redux”导入{connect}
从“./TripCard.js”导入TripCard
const MyTrips=props=>{
常量tripCards=props.trips.length>0?
props.trips.map(t=>):null
返回(
tripcards
)
}
常量mapStateToProps=状态=>{
返回{
trips:state.myTrips,
喜欢:state.mytrips
}
}
导出默认连接(MapStateTops)(MyTrips)
**MyTrips减速机**
常量initialState=[]
导出默认值(状态=初始状态,操作)=>{
开关(动作类型){
案例“设置我的行程”:
返回操作.trips
案例“添加行程”:
返回状态.concat(动作.trip)
案例“更新行程”:
返回状态.map(trip=>trip.id==action.trip.id?action.trip:trip)
案例“删除行程”:
返回状态.filter(trip=>trip.id==action.tripId?false:true)
案例“清除跳闸”:
返回初始状态
违约:
返回状态
}
}
**加三样作用**
导出常量addTripLike=(tripData,历史)=>{
返回调度=>{
常量sendableTripData={
喜欢:tripData.likes
}
回传(`http://localhost:3001/api/v1/trips/${tripData.tripId}/add_`{
证书:“包括”,
方法:“补丁”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify(sendableTripData)
})
.then(response=>response.json())
。然后(resp=>{
如果(相应错误){
警报(相应错误)
}否则{
//window.location.reload();
控制台日志(响应数据)
调度(更新访问(响应数据))
history.push(`/trips/${resp.data.id}`)
}
})
.catch(console.log)
}
}
在您的情况下,它将如下所示:
trips.sort((a, b) => {
b.likes - a.likes
}
要让您快速了解其工作原理,请执行以下操作:
当你使用(b-a)时,它会