logo
down
shadow

Fix a 'Cannot read property handleClick of undefined error' (and issues related to deleting an item from the DOM)


Fix a 'Cannot read property handleClick of undefined error' (and issues related to deleting an item from the DOM)

Content Index :

will be helpful for those in need Background , Change your code to the following:
let handleClick = (id) => {
  props.deleteProgram(id)

  }

let program = props.program ? props.program : props.programs[props.match.params.id - 1]
let programId = program.id

return(
    <Grid.Column>
      <Card onClick={(_) => handleClick(programId)}>
        <Image src={program ? program.image : null} wrapped ui={false} />
        <Card.Content>
          <Card.Header>{program ? program.name: null}</Card.Header>
          <Card.Meta>
            <span className='date'>{program ? program.network : null 
            </span>
          </Card.Meta>

Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

Cannot read property 'handleClick' of undefined


Tag : reactjs , By : protagonist
Date : March 29 2020, 07:55 AM
Any of those help There were lots of issues in your app. I fixed all of them and the new App component should be like this. Firstly inside the render method you need to call the two child components render methods using the (). Next to the renderContent function you need to pass one content instance at a time, not an array. I have posted the App component with all the changes I made to make it work below.
import React, { Component } from 'react';
import Tab from './tab';
import Content from './content';

export default class App extends Component {
  constructor(props) {
        super(props);
        this.state = {
          tabs: [
            {id: 0, name: 'Foo'},
            {id: 1, name: 'Bar'},
            {id: 2, name: 'Fizz'}
          ],
          contents: [
            {name: 'Foo', content: 'Hello'},
            {name: 'Bar', content: 'World'},
            {name: 'Fizz', content: 'Buzz'},
          ]
        };
        this.handleClick = this.handleClick.bind(this);
      }

      handleClick() {
        console.log('Hi');
      }

      renderTab(tab) {
        return(<Tab {...tab}
                    onClick={this.handleClick}
                    />
        );
      }
      renderContent(content) {
        console.log(this.state.contents);
         return(<Content {...content}/> );
      }

      render() {
        return(
          <div className="container-tabs">
            <div className="tab">
              {this.state.tabs.map(tab => this.renderTab(tab))}
            </div>
            <div className="tabcontent">
              <p>{this.state.contents.map(content => this.renderContent(content))}</p>
            </div>
          </div>
        ) ;
      }
}
{this.state.tabs.map(tab => this.renderTab(tab))}

Uncaught (in promise) TypeError: Cannot read property 'handleClick' of undefined in forEach loop


Tag : javascript , By : mckasty
Date : March 29 2020, 07:55 AM
I wish did fix the issue. You forgot to bind the forEach function and hence the error since, this inside forEach function will refer to its own context where handleClick is not defined rather than the React Component, Either use .bind(this) like
 {this.state.articles.forEach( function(element, index) {
    console.log(element);
    teste.push(<div onClick={this.handleClick} className="articles-menu-item" key={index.toString()}>{element.title}</div>);
  }.bind(this))}
 {this.state.articles.forEach( (element, index) => {
    console.log(element);
    teste.push(<div onClick={this.handleClick} className="articles-menu-item" key={index.toString()}>{element.title}</div>);
  })}

React-Redux: Cannot read property 'map' of undefined when deleting an item


Tag : reactjs , By : Josh
Date : March 29 2020, 07:55 AM
will help you I have an error after clicking the delete button saying:
case DELETE_POST:{
 const { items } = state;
 const filteredItems = items.filter(items => {
      return items.id != action.payload;
 });

 return { 
    ...state,
    items: [ ...filteredItems ]
 };

}

TypeError: Cannot read property 'handleClick' of undefined


Tag : javascript , By : ciops
Date : March 29 2020, 07:55 AM
around this issue It is because the callback in the map method this.state.users.map is not bound. You need to turn that into an arrow function. like this:
import React from 'react';
import './App.css';

class User extends React.Component {
  constructor(){
    super();
    this.state = {
      users: [],
      displayList: 'block',
      displayForm: 'none'
    }
    this.handleClick = this.handleClick.bind(this);
  }

  componentDidMount(){
    this.getUsers();
  }

  getUsers(id){
    fetch('https://jsonplaceholder.typicode.com/users')
      .then(response  => response.json())
      .then(json => this.setState({users: json}));
  }

  handleClick(){
    this.setState({displayList: 'none', displayForm: 'block'})
  }

  render(){
    const list = this.state.displayList;
    const form = this.state.displayForm;

    return (
      <ul>
        {this.state.users.map((item => {
          return (
            <div key={item.id}>
              <br></br>

              <div style={{display: list}}>
                <h2>{item.name} </h2>
                <p>Email: {item.email} </p>
                <p>Address: </p>
                <ul>
                  <li>Street: {item.address.street} </li>
                  <li>Suite: {item.address.suite} </li>
                  <li>City: {item.address.city} </li>
                  <li>ZipCode: {item.address.zipcode} </li>
                </ul>
                <p>Phone: {item.phone} </ p>
              </div>

              <div style={{display: form}} >
                <div>
                  <h2>{item.name} </h2>
                  <p>Email: <input value = {item.email} className="form-control" onChange=""/> </p>
                  <p>Address: </p>
                  <ul>
                    <li>Street: <input value = {item.address.street} className="form-control" /> </li>
                    <li>Suite: <input value = {item.address.suite} className="form-control" /> </li>
                    <li>City: <input value = {item.address.city} className="form-control" /> </li>
                    <li>ZipCode: <input value = {item.address.zipcode} className="form-control" /> </li>
                  </ul>
                  <p>Phone: <input value = {item.phone} className="form-control" /> </p>
                </div>
              </div>

              <button onClick={this.handleClick}> Edit </button>
              <hr></hr>
            </div>
          )
        }))}
      </ul>
    );
  }
}

export default User;

Cannot read property 'handleClick' of undefined when using map


Tag : reactjs , By : Juice
Date : March 29 2020, 07:55 AM
Related Posts Related QUESTIONS :
  • ES6 imports and node_modules hell
  • How to get css selector of clicked-on element?
  • How to auto input MySQL data (input column 1 data to auto input column 2 data with same column) in php?
  • Appending to Datalist Via Javascript
  • Customizing Material-UI Components with Styled-Components
  • Populate elements with class name using Javascript
  • How to execute promises in batches (first resolving 10, then next 10 and so on)
  • Maximo JS automation script: "importPackage" is not defined
  • How to surround selected text inside textarea with <em> on key combination CTRL+i?
  • Your configured registry does not support audit requests ~ On npm audit
  • What's the Angular equivalent of Vue <slot/>?
  • Iconify icon not updating when "data-icon" set with setAttribute()
  • Javascript newbie stuck with XMLHttpRequest return data
  • How to add obj to to state in my example Redux React
  • Loading "grunt-karma.js" tasks...ERROR >> SyntaxError: Unexpected identifier
  • Why do I get log is not defined
  • get the multiple index of the same string
  • How can I iterate over an Array object by using For IN or FOR OF
  • Launch local executable from web browser
  • How to prepare array of json objects to d3 hierarchical tree structure
  • VueJS - event emitted - show HTML before other calculations
  • Export SASS/SCSS variables to Javascript without exporting them to CSS
  • How to attach an event handler only once continuously
  • How to make button open a link in new tab in JavaScript?
  • Find range from the javascript object
  • How can I use my jQuery code as JavaScript?
  • How to show 5 images in a 2 row slider with bxslider
  • How to convert stream into variables in typescript
  • Three.js custom shader error on Chrome GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs
  • My JavaScript doesn't work. How can I solve this problem?
  • Why is this async function is running synchronously?
  • Get updated variable from within react hook before return
  • I want to show all image preview but whenever I upload a new one the old one is gone
  • Would I be able to give access to specific electron APIs safely?
  • Why several clicks fire for each instance of a Class?
  • cant grab value from div using attr()
  • Make web service not accessible by browser?
  • Select DOM elements within template
  • How to customize angular ui-grid row background color?
  • Binding data in two respective $scope in AngularJS, how?
  • react put some props after import class
  • Variable is distributed among same components
  • switch class in jQuery/JavaScript for active/inactive state
  • How To Track Outbound Clicks Using Javascript
  • How to get total seconds elapsed since the beginning of the month?
  • Protractor: Stale element reference at "browser.wait(EC.visibilityOf(confDial), FIFTY_SECONDS);"
  • Access to an array inside an object
  • Reseting an JavaScript Interval with different value?
  • Learning Angular for the first time - version 2 or 4?
  • Rendering RSS feed (XML) in React with jquery, why do object values parsed from the feed seem empty?
  • Node.js xml2js http.request tag matching
  • applying texture to custom plane geometry in Threejs
  • How do I pass an Event as a function parameter in HTML written inside JavaScript variable?
  • Interface of object parameter with default value and default property
  • Does using try / catch rather than `.catch` observable operator with XHR requests reduce performance?
  • In IE11 background colors not working on printing
  • TypeScript interface signature "(): string"
  • Is synchronous XMLHttpRequest supported in Internet Explorer 10 and 11?
  • Axios function not returning any values with js
  • How to use firestore TIMESTAMP to create time-stamp in JavaScript
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com