Only the first component is receiving the correct subscription data

Really confused on this one. I’m mapping over a collection to render html for each record. In the map function I drop in a component IssueInfo that takes in the current Issue and will output what the current user voted for on that particular issue. Trouble is, only the first IssueInfo is receiving unique subscription info. The rest all repeat the exact same thing. If I edit the data in mongo for the first one, they all change.

Has anyone experienced this issue before/offer any ideas about what it could be?

What I’ve verified:

  1. The correct information is being passed to each IssueInfo. I can see it in the ReactMeteorDataComponent in React Dev tools and I can output other information from that Issue object.

  2. The subscription is not returning undefined. I console logged the result of the subscription and I’m getting all of the correct information for all of the IssueInfo components.

  3. Nothing is mistakenly hardcoded.

The code where the Issue html is being rendered

renderIssues() {
    let filteredIssues = this.props.issues;
    if (this.state.hideExpired) {
      filteredIssues = filteredIssues.filter(issue => !issue.expired);
    }
    return this.state.issuesToDisplay.map((issue) => (
       <Link key={issue._id} to={`/issues/${issue._id}`}>
        <Col className="issue" xs={12} md={4}>
          <h4>{issue.title}</h4>
          <IssueInfo currentIssue={issue} />
        </Col>
      </Link>
    ));
  }

The subscription I’m running within the IssueInfo component

export default createContainer(({ currentIssue: { _id } }) => {
  const subscription = Meteor.subscribe('votes.find', _id);

  return {
    loading: !subscription.ready(),
    currentUser: Meteor.userId(),
    vote: Votes.findOne(),
  };
}, IssueInfo);

The publication

Meteor.publish('votes.find', function voteFind(issueId) {
  check(issueId, String);

  return Votes.find({ $and: [{ userId: this.userId }, { issue: issueId }] });
});