Javascript 参数不可访问-[ts]找不到名称';产品';
我正在尝试将我的参数Javascript 参数不可访问-[ts]找不到名称';产品';,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我正在尝试将我的参数产品添加到我的按钮组件中 我的功能handleIncrement的product设置如下: handleIncrement = product => { console.log(product); this.setState({ count: this.state.count + 1 }); }; 我的onClick事件:onClick={()=>this.handleIncrement(product)} 从我的理解来看,应该可以在我的rende
产品添加到我的按钮组件中
我的功能handleIncrement
的product
设置如下:
handleIncrement = product => {
console.log(product);
this.setState({ count: this.state.count + 1 });
};
我的onClick事件:onClick={()=>this.handleIncrement(product)}
从我的理解来看,应该可以在我的render()
中访问它,但Typescript给了我“找不到名称‘Product’”
对于React和Typescript,我仍处于学习阶段。
我是做错了什么,还是完全错了
这是完整的代码:
class Counter extends Component {
state = {
count: 0,
tags: ["tag1", "tag2", "tag3"]
};
renderTags() {
if (this.state.tags.length === 0) return <p>No tags!</p>;
return (
<ul>
{this.state.tags.map(tag => (
<li key={tag}>{tag}</li>
))}
</ul>
);
}
handleIncrement = product => {
console.log(product);
this.setState({ count: this.state.count + 1 });
};
render() {
return (
<div>
<span className={this.getBadgeClasses()}>{this.formatCount()}</span>
<button
onClick={() => this.handleIncrement(product)}
className="btn btn-secondary btn-sm"
>
Increment
</button>
{(this.state.tags.length === 0 && "Please create new tag!") ||
"tags exists"}
{this.renderTags()}
</div>
);
}
private getBadgeClasses() {
let classes = "badge m-2 badge-";
classes += this.state.count === 0 ? "warning" : "primary";
return classes;
}
formatCount() {
const { count } = this.state;
return count === 0 ? "Zero" : count;
}
}
export default Counter;
类计数器扩展组件{
状态={
计数:0,
标签:[“tag1”、“tag2”、“tag3”]
};
renderTags(){
if(this.state.tags.length==0)返回无标记!;
返回(
{this.state.tags.map(tag=>(
- {tag}
))}
);
}
handleIncrement=产品=>{
控制台日志(产品);
this.setState({count:this.state.count+1});
};
render(){
返回(
{this.formatCount()}
此.handleIncrement(产品)}
className=“btn btn次要btn sm”
>
增量
{(this.state.tags.length==0&&“请创建新标记!”)||
“标记存在”}
{this.renderTags()}
);
}
私有getBadgeClasses(){
let classes=“badge m-2 badge-”;
classes+=this.state.count==0?“警告”:“主要”;
返回类;
}
formatCount(){
const{count}=this.state;
返回计数===0?“零”:计数;
}
}
导出默认计数器;
在JS中,变量的作用域可以是全局的、函数内的或块内的,具体取决于它们的声明方式或位置
var globalVar=1;
函数示例(){
var函数var=2;
if(functionVar){
let blockVar=3;//let生成一个变量“block scoped”
}
}
您希望onClick
中的产品是什么?谢谢您的详细回复。我很好奇,在过去的6个月里,这方面是否发生了变化,因为我学习的材料确实是在我编写代码时编写的,没有在任何地方定义它,所以我的理解是,如果我像这样使用它,我不必这样做。