Upvote:14
As a citizen of Eritrea, yes, you need a Schengen visa to go to Amsterdam. This is true whether you fly there by way of Iceland (or any other Schengen country) or directly.
If you fly through Iceland, you will enter the Schengen area in Iceland, for which you need a Schengen visa, and your flight from there to Amsterdam will be an internal Schengen flight, so you will neither leave nor reenter the Schengen area, legally speaking. The same will be true if you fly through any other Schengen airport.
If you fly directly to Amsterdam, you will enter the Schengen area in Amsterdam, for which you also need a Schengen visa.
So no matter what, you need a Schengen visa.
This analysis assumes that you do not have a residence permit from a Schengen country. If you do, the residence permit authorizes you to enter the Schengen area, and you do not need an additional visa.
You mention in a comment that you are traveling with a refugee travel document, presumably issued by Canada. That changes your situation in the Schengen area somewhat, because you are allowed to enter five Schengen countries without a visa (assuming the linked resource is up to date, which it may not be; I could not confirm). The Netherlands is not one of those countries, however, so it doesn't change the ultimate answer. For more information, see the related question Travelling through the Schengen area with a Refugee Travel Document issued by the USA, but note that the privileges afforded to the bearer of a refugee travel document depend on the country issuing the document, as described in the previous link.