react-native - 从 saga 中的 socket.io 事件中发送动作
问题描述
我正在尝试使用 socket.io 和 redux-saga 使我的登录流程正常工作。
建立套接字连接和验证用户没有问题,但是当我尝试从“loginSuccess”事件调度一个动作时,什么也没有发生
登录传奇如下所示:
import { takeLatest, call, put, take } from "redux-saga/effects";
import * as types from "../actions/types";
import connect from "../constants/socketConnection";
function* doLogin(action) {
const socket = yield call(connect);
socket.emit("login", {
username: action.username,
password: action.password
});
socket.on("loginSuccess", (response) => {
yield put({type: types.SET_CURRENT_USER, currentUser: response.user})
});
}
export function* login() {
yield takeLatest(types.LOGIN, doLogin);
}
不能从 socket.on() 中发送动作吗?语法是正确的(它在我的其他项目中有效),但是 VS 代码说从未使用过“put”和“response”,并且当 put 存在时 Prettier 无法自动格式化,因此它没有注册。虽然没有显示错误。
解决方案
推荐阅读
- python - 仅替换包含字母数字、字符串和数值的列中的数值?
- html - 输入复选框在 div 中不可点击
- python - 为什么在尝试从 api 获取数据时出现此错误“TypeError:字符串索引必须是整数”?
- sql-server - 多个 CSV,一个结构 -> 使用 SSIS 的多个表
- c - 捕获信号时强制终端不打印 Ctrl 热键
- apache-spark - 如果找到匹配项,则在 master 中插入增量记录并更新现有列值
- forms - vue表单中如何预填充数据?
- deeplearning4j - DL4j 1.0.0-M1.1 在 CUDA 上运行非常慢
- powershell - 如何在powershell中将电话号码附加到国家代码
- php - WordPress 编码错误:未清理的输入变量