javascript - 当映射到 react 中的显示组件时,显示计数器 Prop 。

标签 javascript reactjs

我有一个包含自定义表情符号对象的数组,我将其映射以在 JSX 代码中显示。

我有一个处理程序,用户可以在其中添加表情符号,并且每次选择它时都会增加一个计数器。

addEmoji = (newEmoji) =>{
// mark if new emoji is already in the array or not
let containsNewEmoji = false;

// recreate emojis array
let newEmojis = this.state.emojis.map(emoji => {
  // if emoji already there, simply increment count
  if (emoji.id === newEmoji.id) {
    containsNewEmoji = true;

    return { 
      ...newEmoji,
      ...emoji,
      count: emoji.count + 1,
    };
  }

  // otherwise return a copy of previos emoji
  return {
    ...emoji
  };
});

我从 emoji-mart 节点模块导入了 Emoji 组件,并映射了:

 <div className="emoji">
        {this.state.emojis && 
        this.state.emojis.map( (emoji, index) =>{
        return(
         <Emoji key={index} onClick={this.addEmoji} tooltip={true}
        emoji={{id: emoji.id, skin: 1}} size={25}  />
        )
        })  
        }
        </div>

如何在表情符号旁边显示计数器变量,以查看它已显示了多少次?

最佳答案

您可以创建一个名为 EmojiCount 的组件,您将传递表情符号并将其计为 Prop

const EmojiCount = (props)  => {
  return (
      <Emoji {...props.emoji} />
      <div>{props.count}</div>
  );
}

关于javascript - 当映射到 react 中的显示组件时,显示计数器 Prop 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53660771/

相关文章:

javascript - javascript中声明的类存储在哪里?

javascript - 如何获得定期间隔计数

javascript - 基于 Ajax 的文件上传

javascript - ReactJs 使用 refs 来聚焦输入

javascript - jQuery.AreYouSure 插件不工作

Javascript如何更改计时事件上的单元格颜色?

javascript - react native : You attempted to set the key on an object that is meant to be immutable and has been frozen

javascript - React Router V6 中的 Router 不将历史对象作为 props

javascript - 从按钮onclick调用函数不起作用 react js

javascript - react : Authentification and avoiding repeating code components