Javascript 由于某些原因,在映射<;上的onClick事件之后;李>;韩元';不行。反应js
我正在尝试使用下拉列表创建搜索字段。 出于某种原因,在映射到一个数组并列出几个“li”之后,onClick处理程序甚至不点击其中任何一个就向suggestionSelected(value)function 3发送值 有人能帮忙解决一个问题吗?随信附上一张截图,显示我试图输入一个以“s”开头的城市名称。请参阅控制台中的输出 有问题的代码段被注释Javascript 由于某些原因,在映射<;上的onClick事件之后;李>;韩元';不行。反应js,javascript,reactjs,Javascript,Reactjs,我正在尝试使用下拉列表创建搜索字段。 出于某种原因,在映射到一个数组并列出几个“li”之后,onClick处理程序甚至不点击其中任何一个就向suggestionSelected(value)function 3发送值 有人能帮忙解决一个问题吗?随信附上一张截图,显示我试图输入一个以“s”开头的城市名称。请参阅控制台中的输出 有问题的代码段被注释 从“React”导入React; 从“shortid”导入shortid; 从“/CityForm.module.css”导入模块; 将默认类导出到表单
从“React”导入React;
从“shortid”导入shortid;
从“/CityForm.module.css”导入模块;
将默认类导出到表单扩展React.Component{
状态={
文本:“”,
项目:[“莫斯科”、“萨拉托夫”、“新加坡”、“纽约”],
建议:[]
};
handleChange=(事件)=>{
这是我的国家({
文本:event.target.value
});
常量值=event.target.value;
让建议=[];
如果(value.length>0){
const regex=new RegExp(`^${value}`,'i');
建议=this.state.items.sort().filter(v=>regex.test(v));
}
这是我的国家({
建议:建议
});
}
renderSuggestions(){
const{suggestions}=this.state;
如果(建议长度===0){
返回null;
}否则{
返回(
{suggestions.map((项目)=>- {item}
)}
)
}
}
handleSubmit=(事件)=>{
event.preventDefault();
这个.props.onSubmit({
id:shortid.generate(),
text:this.state.text
});
这是我的国家({
文本:“”
});
}
suggestionSelected(值){
console.log(值);
//这是我的国家({
//文本:值,
//建议:[]
// });
}
render(){
const{items}=this.state;
返回(
{this.renderSuggestions()}
添加城市
)
}
}
提前感谢。尝试将图像函数调用更改为
{ suggestions.map((item) => <li onClick={() => this.suggestionSelected(item)}> {item} </li> ) }
{suggestions.map((项目)=>this.suggestionSelected(项目)}>{item} )}
通过将其作为onClick={this.suggestionSelected(item)}
传递,它实际上在渲染时调用函数this.suggestionSelected(item)
如果希望在回调赋值本身中作为参数传递回某些内容,请将其作为函数引用传递
onClick={()=>this.suggestionSelected(item)}
错误:
正确:
此。建议已选择(项目)}
完美!非常感谢你!我忘了这么一件小事)我怎么会这么笨呢)在那种情况下,你能把其中任何一个标记为答案吗,这对其他人都会有帮助。我正在尝试,但网站上说我非常感谢甘扎尔!我非常感谢你的帮助。成功了。我也忘了绑定函数。当然,没问题。如果这个答案对你有帮助,请记住选择它作为正确答案。