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

如何在React中通过动态变量获取Redux对象的examples_前缀属性?

正确实现方式

你需要使用方括号语法动态拼接属性名,这是JavaScript中访问对象动态属性的标准写法:

// 简洁写法
const retrieveVariations = useSelector(state => 
  state.variationsData[`examples_${variable}`]
);

或者拆分步骤,可读性更强:

const retrieveVariations = useSelector(state => {
  // 拼接出目标属性的完整名称
  const targetProperty = `examples_${variable}`;
  // 通过方括号访问动态属性
  return state.variationsData[targetProperty];
});

补充说明

注意examples_production的值是JSON字符串,如果需要在表单中直接使用数组数据,还需要先解析:

const retrieveVariations = useSelector(state => {
  const targetProperty = `examples_${variable}`;
  const rawValue = state.variationsData[targetProperty];
  // 仅当值为字符串时解析,兼容null的情况
  return typeof rawValue === 'string' ? JSON.parse(rawValue) : rawValue;
});

为什么之前的写法无效?

  • state.variationsData.examples_{variable}:JavaScript点语法仅支持固定属性名,不能直接插入变量,属于语法错误。
  • state.variationsData.examples_+variable:这里会先读取不存在的examples_属性(得到undefined),再和variable做字符串拼接,结果完全不符合预期。
  • state.variationsData.[examples_+variable]:多了不必要的点,且examples_未加引号会被当作未定义变量,直接触发语法错误。

内容的提问来源于stack exchange,提问作者ddaudiosolutions

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:40:42