Reactjs 使用“反应选择”,但未显示占位符

Reactjs 使用“反应选择”,但未显示占位符,reactjs,react-select,Reactjs,React Select,我已经做了一些样式,你可以在这个沙盒上看到,但我不能找出它的占位符文本。我不确定为什么会发生这种情况 指向CodeSandbox的链接: 导出默认函数国家{formValues,setFormValues}{ const[data,setData]=useState[]; const[search,setSearch]=useState{country:}; 常量{register,handleSubmit}=useForm; //从Api获取数据 useEffect=>{ 常量fetchDat

我已经做了一些样式,你可以在这个沙盒上看到,但我不能找出它的占位符文本。我不确定为什么会发生这种情况

指向CodeSandbox的链接:

导出默认函数国家{formValues,setFormValues}{ const[data,setData]=useState[]; const[search,setSearch]=useState{country:}; 常量{register,handleSubmit}=useForm; //从Api获取数据 useEffect=>{ 常量fetchData==>{ Fetchhttps://restcountries.eu/rest/v2/all .thenres=>res.json .thenresult=>setDataresult .catcherr=>console.logerror; }; 获取数据; }, []; const options=data.mapd=>{ 标签:d.name }; 函数handleChangeitem{ 固定耳; } 函数onSubmitValue{ SetFormValue{ …形成价值观, 价值观 搜索 }; log{…formValues,…values,…search}; } //“选择”对话框的样式 常量自定义样式={ 选项:已提供,状态=>{ 假如 边框底部:1px实心dede, 颜色:state.isSelected?53e3a6:绿色, 背景颜色:白色, 填充:10 }, 控件:基本,状态=>{ 基础 颜色:state.isSelected?53e3a6:绿色, 边框:1px实心rgba255、255、255、0.4、, 鲍克斯:没有, 差额:20, &:悬停:{ 边框:1px实心rgba255、255、255、0.4 } }, 占位符:基=>{ 基础 //背景颜色:黑色, 字体大小:2米, 颜色:黑色, 体重:400 } }; 回来 提交 ; }
您将错误的状态传递给react select的值道具

更改此行:

值={search} 致:

值={search.country} 原因:搜索是一个非falsy的状态对象,仅当您将falsy值传递为空字符串或未定义(例如)时,才会显示占位符

现场演示
是的,非常感谢!我现在明白了!:我对这些状态很陌生,但我明白了,现在得到一个组件的错误是将受控输入更改为非受控输入。我该怎么做才能得到它?谢谢大家!@亚历山大b见。您应该为选项提供适当的接口。尝试{label:d.name,value:d.name}而不是{label:d.name}