I haven’t dove into state in functional components yet. But I am learning about state in class components.
When building a class in React, it’s helpful to extend (in C# we call this an override (inheritance)) React.Component. In order to pass arguments (props) to this class though, you must pass the props into the class constructor as well as into the parent (React.Component). That’s accomplished by using the super keyword.
The nice thing about state in a React class, is that it’s asynchronous out of the box. We can set off a task in the constructor and when you have a callback function that’s tied to this.setState, React will automatically recall the render method and update the state of that component. See my example below:
Organizing your code into src and tests folders on GitHub seems to be getting more and more popular. However, in Visual Studio 2019, it’s not very easy to accomplish. Here is how I do it.
Firstly, let me show you the final outcome:
To get there requires some Command line. First open a Command window and change to your local root folder for your application. In my case it’s C:\Code\NameOfCoolApp.
Once in the root folder of your application, type this in:
dotnet new sln
You should get something similar to The template “Solution File” was created successfully.
Next, we’re going to stub out one of your projects in the solution, so use whatever your naming convention is here. In my case, we’re going to stub out the Domain project. So from that same command window, type:
dotnet new classlib -o src/NameOfCoolApp.Domain
You should then see something like The template “Class Library” was created successfully and ending with Restore succeeded.
Next, I add a stubbed Unit Test:
dotnet new mstest -o tests/Domain.UnitTests
Following the successful message, we’re then going to add the above two items to the Solution by starting with:
dotnet sln add src/NameOfCoolApp.Domain
dotnet sln add tests/Domain.UnitTests
From here you should be able to open the Solution file with VS2019 and be good to move on with the rest of your project within Visual Studio.
When doing any kind of validation on your aspx pages, you must go back and set the CausesValidation property of most of your controls to “false”. My RadComboBox wasn’t firing any postbacks until I did that. I also had to set the same property on all my RadTabStrips because by default, they want to validate when you click on other tabs.