You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将navigation获取的整型id、company转字符串并存入Redux?

解决方案

1. 整型转字符串实现

推荐使用String()构造函数完成转换,兼容性最好,不会因为参数为null/undefined时抛出报错,也可以根据你的习惯选择其他转换方法,示例代码如下:

// 从navigation中获取原始参数
let id = props.route.params.oved;
let company = props.route.params.company;

// 转换为字符串类型
const strId = String(id);
const strCompany = String(company);

// 其他可选转换方式,按需选择即可
// 方式2:toString() 注意参数为null/undefined时会报错
// const strId = id.toString();
// const strCompany = company.toString();
// 方式3:空字符串拼接/模板字符串
// const strId = id + '';
// const strCompany = `${company}`;

// 验证转换结果
console.log("id-->", strId); // 输出 "1"
console.log("company--->", strCompany); // 输出 "465"

注意:你当前给出的打印日志中comapny为拼写错误,实际取值时请确认参数key为company避免取值失败。

2. 转换后的值存入Redux

前提条件

你已经完成Redux的基础配置,包括store注册、对应状态切片/Reducer定义。

操作步骤

  • 首先在Redux状态切片中定义对应存储字段和更新Action,以下是Redux Toolkit的示例代码:
// parameterSlice.js 示例,路径根据你的项目结构调整
import { createSlice } from '@reduxjs/toolkit'

const initialState = {
  navId: '',
  navCompany: ''
}

const parameterSlice = createSlice({
  name: 'navParams',
  initialState,
  reducers: {
    saveNavigationParams: (state, action) => {
      state.navId = action.payload.id;
      state.navCompany = action.payload.company;
    }
  }
})

export const { saveNavigationParams } = parameterSlice.actions;
export default parameterSlice.reducer;
  • 然后在你获取navigation参数的组件中,触发dispatch完成存储:
import { useDispatch } from 'react-redux';
import { saveNavigationParams } from './parameterSlice'; // 替换为你自己的路径

// 组件内部逻辑
const dispatch = useDispatch();

// 点击卡片/拿到最新navigation参数并完成类型转换后,执行下面的代码即可存入Redux
dispatch(saveNavigationParams({
  id: strId,
  company: strCompany
}))

适配你的使用场景

每次点击卡片拿到最新的navigation参数时,只要执行上述的「类型转换+dispatch触发Action」逻辑,即可自动更新Redux中存储的最新值。如果使用的是没有Toolkit的旧版Redux,按照你原有项目的Action定义规则传参触发dispatch即可,核心逻辑一致。

内容的提问来源于stack exchange,提问作者Ashish good luck chuck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:06:05