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个月里,这方面是否发生了变化,因为我学习的材料确实是在我编写代码时编写的,没有在任何地方定义它,所以我的理解是,如果我像这样使用它,我不必这样做。