0

我有一个选项列表

const values = [
      { firstName: 'John',
        id: 'text'
      }.
      {
        userId: 123,
        id: 'number'
      }
];

逻辑是用户选择一个值(firstName),然后将生成一个“字符串”类型的输入字段。如果用户选择 userId,则将生成类型为“int”的文本输入。我需要创建一个逻辑,用户将能够从下拉列表中选择另一个选项,并且应该生成一个文本字段。例如,如果选择的选项是 True 或其他数字,它应该提供一个布尔值或整数文本字段。我也在使用 immutability helper 来更新类型,但我从官方文档中并没有清楚地理解。关于如何通过反应实现这一点的任何想法?

这是我的不变性辅助函数

const setValueType = (type: string, index: number) => {
    if (index < 0 || index >= data.values.length) {
        return;
    }
    setValueData(update(data, {
        values: {
            [index]: {
                type: { $set: type }
            }
        }
    }));
};
const setPlaceholder = (placeHolder: any, index: number) => {
    if (index < 0 || index >= data.values.length) {
        return;
    }
    setValueData(update(data, {
        values: {
            [index]: {
                placeHolder: { $set: placeHolder }
            }
        }
    }));
}

我正在使用“setValueType”函数来更新类型,并使用“setPlaceHolder”来设置显示文本,我必须想出一种方法来向下拉列表中添加新选项,但它们应该有条件地呈现类型。

我在想我必须在“setValueType”函数中传递一个 if-else 条件,但我不确定是否要实现它。

4

0 回答 0