使用自动建议渲染和显示选择

Rendering and showing selections with autosuggest

我在一个组件上使用 react-autosuggest,该组件获取选项列表,呈现建议,然后当用户单击一个时将其保存到商店。我想打印所选值时遇到问题

然后是函数:

保存时:

      const onSave = () => {
    props.saveCarColor(value);
    console.log("value", value);
    getSuggestionValue(value);
    if (!props.carColor) {
      return toastError("Error");
    }
    props.history.push(getRoute(""));
  };

渲染建议:

const renderSuggestion = (item) => {
    return <span>{item.Value}</span>;
  };

获取建议:

    const getSuggestionValue = (selection) => {
    console.log("selection", selection);
return selection.Value;
  };

输入道具:

    const inputProps = {
    value,
    onChange: (event, { newValue }) => setValue(newValue),
  };

我声明了这个钩子来更新值:

  const [value, setValue] = useState("");

问题是,我将它正确地保存到商店中,但是在我保存它之后,它应该 return 到表单页面并显示我选择的颜色,就像我正在做的一样在带有 return 的 getSuggestionValue 函数上,但文本未显示,我也没有收到任何错误,并且我打印的控制台日志如下:

value BLACK
selection BLACK

最后我最终使用另一个钩子来保存选定的颜色,所以现在我有了这个:

挂钩:

const [value, setValue] = useState("");
  const [selected, setSelected] = useState(null);

输入道具:

const inputProps = {
    placeholder: "Ej: BLUE",
    value,
    onChange: (event, { newValue }) => setValue(newValue),
  };

渲染建议:

const renderSuggestion = (item) => {
    return <span>{item.Value}</span>;
  };

和getSuggestionValue:

const getSuggestionValue = (selection) => {
    setSelected(selection.Value);
    return selection.Value;
  };

onSave:

const onSave = () => {
if (!selected) {
  return toastError("");
}
props.saveCarColor(selected);


};

我就是这样解决的,希望对你有帮助!