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

Retool输入框联动问题:选择地区后项目下拉无预期结果

Retool输入框联动:根据地区筛选项目选项

你的问题出在代码里用了find方法——这个方法只会返回第一个匹配条件的对象,而你需要的是所有匹配该地区的项目列表,且要提取所有项目名称组成数组,才能作为输入框的可选项。

修正后的代码

const projectDistrictPairs = [
  { project: 'A', district: 'One' },
  { project: 'B', district: 'One' },
  { project: 'C', district: 'One' },
  { project: 'D', district: 'Two' },
  { project: 'E', district: 'Three' },
  { project: 'F', district: 'Four' }
];

// 获取地区输入框的值,确认组件名称和Retool里的一致
const inputDistrict = Districtbox.value;

// 筛选所有匹配地区的项目,再提取项目名称组成数组
const resultingProjects = projectDistrictPairs
  .filter(pair => pair.district === inputDistrict)
  .map(pair => pair.project);

// 如果Retool输入框需要label/value格式的选项,用下面的写法:
// const resultingProjects = projectDistrictPairs
//   .filter(pair => pair.district === inputDistrict)
//   .map(pair => ({ label: pair.project, value: pair.project }));

console.log(resultingProjects); // 选One时输出 ['A', 'B', 'C']

Retool中配置步骤

  1. 选中项目输入框(比如命名为Projectbox)
  2. 在右侧属性面板的Options设置里,选择「Custom」选项
  3. 把修正后的代码粘贴到输入框中,返回的数组会自动作为输入框的可选项
  4. 确认地区输入框的组件名称确实是Districtbox(Retool组件名区分大小写,写错会导致拿不到值)

额外注意点

  • 确保Districtbox的返回值类型和projectDistrictPairs里的district字段类型一致(比如都是字符串),如果是数字或其他类型,需要做类型转换
  • 如果没有匹配的地区,resultingProjects会返回空数组,输入框将无选项可选

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:05:01