Comment pousser le nouveau message dans la matrice de connexions de Réducteur? J'ai essayé de trouver une bonne connexion par index puis de le pousser, mais je ne peux pas me rendre au travail.
Les connexions Schema sont par exemple: schéma est par exemple: p> donc besoin de trouver la connexion droite de la matrice de connexions puis Pour la pousser dans les messages dans cette connexion de cette connexion P> Code de problème: p> const messagesReducer = (state = [], action) => {
switch (action.type) {
case RECIEVE_CONNECTIONS:
return action.payload;
case UPDATE_MESSAGES:
let index = state.findIndex(
connection => connection._id === action.update.id
);
return [...state, state[index].messages.concat(action.update.message)];
default:
return state;
}
};
export default messagesReducer;
3 Réponses :
Vous ne mettez pas en train de mettre à jour l'état avec cette ligne:
let index = state.findIndex( connection => connection._id === action.update.id ); const conn = state[index]; const messages = [ ...conn.messages, action.update.message ]; const newState = state.slice(); newState[index] = { ...conn, messages }; return newState;
Merci beaucoup James!
const messagesReducer = (state = [], action) => { switch (action.type) { case RECIEVE_CONNECTIONS: return action.payload; case UPDATE_MESSAGES: // identify the index to update const index = state.findIndex( connection => connection._id === action.update.id ); // create the new list of messages for the connection const messages = state[index].messages.concat(action.update.message) // modify the connection at index without modifying state const modifiedConnection = Object.assign({}, state[index], { messages }); // replace the connection at index with the modified connection containing the new message return Object.assign([], state, { [index]: modifiedConnection }); default: return state; } }; You were close, but you were adding to the list of connections when you really wanted to be adding to a nested list of messages for a specific connection.
D'accord, je pense que je l'ai eu. Peut-être être un peu verbeux, mais je pense que vous le comprendrez mieux de cette façon. Ceci est également complètement immuable.
... [MessageAtDD] Code> - Pourquoi créez-vous un tableau seulement pour la diffuser? Il suffit de passer
MessageAtDD code>
Oups, j'avais changé de choses autour et voulait faire ça. Merci.
À quoi ressemble un message? Y a-t-il une propriété unique que vous pouvez utiliser pour l'identifier?
@James J'envoie ce message au backend où il est enregistré et un autre à ce réducteur pour obtenir une mise à jour d'interface utilisateur plus rapide. Lorsque l'utilisateur Ouvrir les messages de la page Recieve_Connections est activé et saisissez tous les messages de la base de données, mais met à jour_messages est pour Mise à jour rapide Redux et UI
@UROSKALAJDZIC Si des messages dans un tableau, appuyez simplement sur celui-ci, au lieu de Concat, comme celui-ci - état [index] .messages.push (action.update.message)
@Uroskalajdzic ah ok, et est
état code> un tableau de connexions?
@James Oui, l'état est une matrimonie de connexions et de messages sont une matrimonie dans les connexions