No. Race-based affirmative action is not the best way to do this. There are two reasons for this.
First, race-based affirmative action serves to further divide America on racial lines. It sets different ethnic groups against one another. It makes whites (who are still very much the majority in the United States) against non-whites. This is bad for minorities in the short run and for the country in the long run.
Second, it is not the best way to target those African Americans who are most in need of help. Affirmative action programs tend to skim off the top of African American society, taking those who might not have needed help anyway. It would make more sense to base affirmative action programs on economic status. That way, those African Americans who have been most hurt will be sure to get help. At the same time, such programs would benefit whites, reducing the degree to which they would cause racial animosity.