getting error in react: Line 25: 'totalIncome' is not defined no-undefLoop inside React JSXProgrammatically navigate using react routerReact and Semantic-ui-reactHow get value datapicker in react toobox custom?How to get props value of boolean type in reactUpdate React Grandparent State from onClick in GrandchildReactJS. How to get states of elements inside react componentReact-vis + local CSV: Error in creating data visualizationTrying to make calculations while passing props and functions through different components REACTTrying to pass a function back to App.js and getting stuck REACT
Echo with obfuscation
How can I, as DM, avoid the Conga Line of Death occurring when implementing some form of flanking rule?
How much do grades matter for a future academia position?
Why would five hundred and five be same as one?
How to write Quadratic equation with negative coefficient
Would this string work as string?
How to make money from a browser who sees 5 seconds into the future of any web page?
"Oh no!" in Latin
How do I prevent inappropriate ads from appearing in my game?
If A is dense in Q, then it must be dense in R.
Why the "ls" command is showing the permissions of files in a FAT32 partition?
Typing CO_2 easily
Unable to disable Microsoft Store in domain environment
Possible Eco thriller, man invents a device to remove rain from glass
Limit max CPU usage SQL SERVER with WSRM
What does "tick" mean in this sentence?
What is the smallest number n> 5 so that 5 ^ n ends with "3125"?
Storage of electrolytic capacitors - how long?
How to I force windows to use a specific version of SQLCMD?
How to get directions in deep space?
Origin of pigs as a species
Anime with legendary swords made from talismans and a man who could change them with a shattered body
If the only attacker is removed from combat, is a creature still counted as having attacked this turn?
How can ruler support inventing of useful things?
getting error in react: Line 25: 'totalIncome' is not defined no-undef
Loop inside React JSXProgrammatically navigate using react routerReact and Semantic-ui-reactHow get value datapicker in react toobox custom?How to get props value of boolean type in reactUpdate React Grandparent State from onClick in GrandchildReactJS. How to get states of elements inside react componentReact-vis + local CSV: Error in creating data visualizationTrying to make calculations while passing props and functions through different components REACTTrying to pass a function back to App.js and getting stuck REACT
import React, Component from 'react'
class CalculateIncome extends Component
state =
totalIncome:0
calculation = () =>
this.props.lessons.filter(lesson =>
this.props.clients.filter(client =>
if (client.name === lesson.name)
let income = client.price * lesson.time;
let totalIncome = this.state.totalIncome + income
return(
totalIncome
)
return (
this.setState(
totalIncome : totalIncome //this is the error
)
)
)
return (this.state.totalIncome)
)
render()
console.log(this.props.lessons, this.props.clients) //this checks out!
return ( this.props.lessons.length ?
(
<div onLoad=this.calculation>this.state.totalIncome</div>
)
:
(<div className="text-center my-5">You are broke</div>)
)
export default CalculateIncome
The props from App.js are loading in correctly because I can see them showing up when I do console.log();
The overall purpose of this calculation is to take the added new lesson and run it through the list of existing clients and multiply the time or duration of the lesson with the price that is listed with the client so I can get my income. Then I want to add that individual income to the total income and display it.
I am either getting an undefined error or if I move things around I get a "needs a return value" error. I am new at react so I am very confused. Any help would be appreciated, thanks! If you need more of my components, please let me know.
html reactjs components jsx
add a comment |
import React, Component from 'react'
class CalculateIncome extends Component
state =
totalIncome:0
calculation = () =>
this.props.lessons.filter(lesson =>
this.props.clients.filter(client =>
if (client.name === lesson.name)
let income = client.price * lesson.time;
let totalIncome = this.state.totalIncome + income
return(
totalIncome
)
return (
this.setState(
totalIncome : totalIncome //this is the error
)
)
)
return (this.state.totalIncome)
)
render()
console.log(this.props.lessons, this.props.clients) //this checks out!
return ( this.props.lessons.length ?
(
<div onLoad=this.calculation>this.state.totalIncome</div>
)
:
(<div className="text-center my-5">You are broke</div>)
)
export default CalculateIncome
The props from App.js are loading in correctly because I can see them showing up when I do console.log();
The overall purpose of this calculation is to take the added new lesson and run it through the list of existing clients and multiply the time or duration of the lesson with the price that is listed with the client so I can get my income. Then I want to add that individual income to the total income and display it.
I am either getting an undefined error or if I move things around I get a "needs a return value" error. I am new at react so I am very confused. Any help would be appreciated, thanks! If you need more of my components, please let me know.
html reactjs components jsx
move your calculation() to componentDidMount(), see react lifecycle methods.(reactjs.org/docs/react-component.html#componentdidmount) What you have to do is 1. get props from app.js 2. perform calcuation (CdM()) 3. render based on calculation Error is : You have return this.setState(xyz). But the method does not return anything.
– Shivam Gupta
Mar 7 at 22:02
i dont understand what you want todo with "this.props.clients.filter", maybe you should to use a reduce to return only one value. anyway, i think your "totalIncome" in setState on calculator is not define.
– Edison Junior
Mar 7 at 22:03
@EdisonJunior My thought process was filtering through each lesson and for each lesson filter through the list of existing clients until I find the one that matches the same name. There I would do the math and then send the answer back and add it to totalIncome.
– josephT
Mar 7 at 22:38
add a comment |
import React, Component from 'react'
class CalculateIncome extends Component
state =
totalIncome:0
calculation = () =>
this.props.lessons.filter(lesson =>
this.props.clients.filter(client =>
if (client.name === lesson.name)
let income = client.price * lesson.time;
let totalIncome = this.state.totalIncome + income
return(
totalIncome
)
return (
this.setState(
totalIncome : totalIncome //this is the error
)
)
)
return (this.state.totalIncome)
)
render()
console.log(this.props.lessons, this.props.clients) //this checks out!
return ( this.props.lessons.length ?
(
<div onLoad=this.calculation>this.state.totalIncome</div>
)
:
(<div className="text-center my-5">You are broke</div>)
)
export default CalculateIncome
The props from App.js are loading in correctly because I can see them showing up when I do console.log();
The overall purpose of this calculation is to take the added new lesson and run it through the list of existing clients and multiply the time or duration of the lesson with the price that is listed with the client so I can get my income. Then I want to add that individual income to the total income and display it.
I am either getting an undefined error or if I move things around I get a "needs a return value" error. I am new at react so I am very confused. Any help would be appreciated, thanks! If you need more of my components, please let me know.
html reactjs components jsx
import React, Component from 'react'
class CalculateIncome extends Component
state =
totalIncome:0
calculation = () =>
this.props.lessons.filter(lesson =>
this.props.clients.filter(client =>
if (client.name === lesson.name)
let income = client.price * lesson.time;
let totalIncome = this.state.totalIncome + income
return(
totalIncome
)
return (
this.setState(
totalIncome : totalIncome //this is the error
)
)
)
return (this.state.totalIncome)
)
render()
console.log(this.props.lessons, this.props.clients) //this checks out!
return ( this.props.lessons.length ?
(
<div onLoad=this.calculation>this.state.totalIncome</div>
)
:
(<div className="text-center my-5">You are broke</div>)
)
export default CalculateIncome
The props from App.js are loading in correctly because I can see them showing up when I do console.log();
The overall purpose of this calculation is to take the added new lesson and run it through the list of existing clients and multiply the time or duration of the lesson with the price that is listed with the client so I can get my income. Then I want to add that individual income to the total income and display it.
I am either getting an undefined error or if I move things around I get a "needs a return value" error. I am new at react so I am very confused. Any help would be appreciated, thanks! If you need more of my components, please let me know.
html reactjs components jsx
html reactjs components jsx
asked Mar 7 at 21:50
josephTjosephT
165
165
move your calculation() to componentDidMount(), see react lifecycle methods.(reactjs.org/docs/react-component.html#componentdidmount) What you have to do is 1. get props from app.js 2. perform calcuation (CdM()) 3. render based on calculation Error is : You have return this.setState(xyz). But the method does not return anything.
– Shivam Gupta
Mar 7 at 22:02
i dont understand what you want todo with "this.props.clients.filter", maybe you should to use a reduce to return only one value. anyway, i think your "totalIncome" in setState on calculator is not define.
– Edison Junior
Mar 7 at 22:03
@EdisonJunior My thought process was filtering through each lesson and for each lesson filter through the list of existing clients until I find the one that matches the same name. There I would do the math and then send the answer back and add it to totalIncome.
– josephT
Mar 7 at 22:38
add a comment |
move your calculation() to componentDidMount(), see react lifecycle methods.(reactjs.org/docs/react-component.html#componentdidmount) What you have to do is 1. get props from app.js 2. perform calcuation (CdM()) 3. render based on calculation Error is : You have return this.setState(xyz). But the method does not return anything.
– Shivam Gupta
Mar 7 at 22:02
i dont understand what you want todo with "this.props.clients.filter", maybe you should to use a reduce to return only one value. anyway, i think your "totalIncome" in setState on calculator is not define.
– Edison Junior
Mar 7 at 22:03
@EdisonJunior My thought process was filtering through each lesson and for each lesson filter through the list of existing clients until I find the one that matches the same name. There I would do the math and then send the answer back and add it to totalIncome.
– josephT
Mar 7 at 22:38
move your calculation() to componentDidMount(), see react lifecycle methods.(reactjs.org/docs/react-component.html#componentdidmount) What you have to do is 1. get props from app.js 2. perform calcuation (CdM()) 3. render based on calculation Error is : You have return this.setState(xyz). But the method does not return anything.
– Shivam Gupta
Mar 7 at 22:02
move your calculation() to componentDidMount(), see react lifecycle methods.(reactjs.org/docs/react-component.html#componentdidmount) What you have to do is 1. get props from app.js 2. perform calcuation (CdM()) 3. render based on calculation Error is : You have return this.setState(xyz). But the method does not return anything.
– Shivam Gupta
Mar 7 at 22:02
i dont understand what you want todo with "this.props.clients.filter", maybe you should to use a reduce to return only one value. anyway, i think your "totalIncome" in setState on calculator is not define.
– Edison Junior
Mar 7 at 22:03
i dont understand what you want todo with "this.props.clients.filter", maybe you should to use a reduce to return only one value. anyway, i think your "totalIncome" in setState on calculator is not define.
– Edison Junior
Mar 7 at 22:03
@EdisonJunior My thought process was filtering through each lesson and for each lesson filter through the list of existing clients until I find the one that matches the same name. There I would do the math and then send the answer back and add it to totalIncome.
– josephT
Mar 7 at 22:38
@EdisonJunior My thought process was filtering through each lesson and for each lesson filter through the list of existing clients until I find the one that matches the same name. There I would do the math and then send the answer back and add it to totalIncome.
– josephT
Mar 7 at 22:38
add a comment |
1 Answer
1
active
oldest
votes
I don't think you need to be using state for this calculation at all (if you did it the way you're trying, your component will re-render for every client-lesson match. Here's a quick (untested) way you could do it.
import React, PureComponent from 'react'
class CalculateIncome extends PureComponent
calculation = () =>
const lessons = [], clients = [] = this.props;
let totalIncome = 0;
lessons.forEach(lesson =>
clients.forEach(client =>
if (client.name === lesson.name)
totalIncome += client.price * lesson.time;
);
);
return totalIncome;
render()
const lessons = this.props;
if (lessons.length)
const totalIncome = this.calculation();
return <div>totalIncome</div>;
return <div className="text-center my-5">You are broke</div>;
)
export default CalculateIncome;
oh jeez, this worked, thank you so much! I had been stuck on this for two days.
– josephT
Mar 8 at 15:46
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55053360%2fgetting-error-in-react-line-25-totalincome-is-not-defined-no-undef%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I don't think you need to be using state for this calculation at all (if you did it the way you're trying, your component will re-render for every client-lesson match. Here's a quick (untested) way you could do it.
import React, PureComponent from 'react'
class CalculateIncome extends PureComponent
calculation = () =>
const lessons = [], clients = [] = this.props;
let totalIncome = 0;
lessons.forEach(lesson =>
clients.forEach(client =>
if (client.name === lesson.name)
totalIncome += client.price * lesson.time;
);
);
return totalIncome;
render()
const lessons = this.props;
if (lessons.length)
const totalIncome = this.calculation();
return <div>totalIncome</div>;
return <div className="text-center my-5">You are broke</div>;
)
export default CalculateIncome;
oh jeez, this worked, thank you so much! I had been stuck on this for two days.
– josephT
Mar 8 at 15:46
add a comment |
I don't think you need to be using state for this calculation at all (if you did it the way you're trying, your component will re-render for every client-lesson match. Here's a quick (untested) way you could do it.
import React, PureComponent from 'react'
class CalculateIncome extends PureComponent
calculation = () =>
const lessons = [], clients = [] = this.props;
let totalIncome = 0;
lessons.forEach(lesson =>
clients.forEach(client =>
if (client.name === lesson.name)
totalIncome += client.price * lesson.time;
);
);
return totalIncome;
render()
const lessons = this.props;
if (lessons.length)
const totalIncome = this.calculation();
return <div>totalIncome</div>;
return <div className="text-center my-5">You are broke</div>;
)
export default CalculateIncome;
oh jeez, this worked, thank you so much! I had been stuck on this for two days.
– josephT
Mar 8 at 15:46
add a comment |
I don't think you need to be using state for this calculation at all (if you did it the way you're trying, your component will re-render for every client-lesson match. Here's a quick (untested) way you could do it.
import React, PureComponent from 'react'
class CalculateIncome extends PureComponent
calculation = () =>
const lessons = [], clients = [] = this.props;
let totalIncome = 0;
lessons.forEach(lesson =>
clients.forEach(client =>
if (client.name === lesson.name)
totalIncome += client.price * lesson.time;
);
);
return totalIncome;
render()
const lessons = this.props;
if (lessons.length)
const totalIncome = this.calculation();
return <div>totalIncome</div>;
return <div className="text-center my-5">You are broke</div>;
)
export default CalculateIncome;
I don't think you need to be using state for this calculation at all (if you did it the way you're trying, your component will re-render for every client-lesson match. Here's a quick (untested) way you could do it.
import React, PureComponent from 'react'
class CalculateIncome extends PureComponent
calculation = () =>
const lessons = [], clients = [] = this.props;
let totalIncome = 0;
lessons.forEach(lesson =>
clients.forEach(client =>
if (client.name === lesson.name)
totalIncome += client.price * lesson.time;
);
);
return totalIncome;
render()
const lessons = this.props;
if (lessons.length)
const totalIncome = this.calculation();
return <div>totalIncome</div>;
return <div className="text-center my-5">You are broke</div>;
)
export default CalculateIncome;
edited Mar 7 at 23:27
answered Mar 7 at 23:21
Gregory FriedmanGregory Friedman
563
563
oh jeez, this worked, thank you so much! I had been stuck on this for two days.
– josephT
Mar 8 at 15:46
add a comment |
oh jeez, this worked, thank you so much! I had been stuck on this for two days.
– josephT
Mar 8 at 15:46
oh jeez, this worked, thank you so much! I had been stuck on this for two days.
– josephT
Mar 8 at 15:46
oh jeez, this worked, thank you so much! I had been stuck on this for two days.
– josephT
Mar 8 at 15:46
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55053360%2fgetting-error-in-react-line-25-totalincome-is-not-defined-no-undef%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
move your calculation() to componentDidMount(), see react lifecycle methods.(reactjs.org/docs/react-component.html#componentdidmount) What you have to do is 1. get props from app.js 2. perform calcuation (CdM()) 3. render based on calculation Error is : You have return this.setState(xyz). But the method does not return anything.
– Shivam Gupta
Mar 7 at 22:02
i dont understand what you want todo with "this.props.clients.filter", maybe you should to use a reduce to return only one value. anyway, i think your "totalIncome" in setState on calculator is not define.
– Edison Junior
Mar 7 at 22:03
@EdisonJunior My thought process was filtering through each lesson and for each lesson filter through the list of existing clients until I find the one that matches the same name. There I would do the math and then send the answer back and add it to totalIncome.
– josephT
Mar 7 at 22:38