Если это не так:
return (
<div> // needs an element wrapper
<input
type='checkbox'
className='form-checkbox'
name={product}
value={product}
onChange={this.gatherFormData}
/>
<span className='label'>{product}</span>
</div>
);
Как говорит jonrsharpe, вам также нужно использовать map (forEach просто перебирает значения - но ничего не возвращает)
{Object.keys(flags).map(product => {
Вы можете получить доступ к таблице символов, см. Стр. 293 из "Программирование Perl" Также посмотрите на «Освоение Perl: http://www252.pair.com/comdog/mastering_perl/ В частности: http://www252.pair.com/comdog/mastering_perl/Chapters/08.symbol_tables.html
Эти переменные, которые вы ищете, будут в основном пространстве имен
Быстрый поиск в Google дал мне :
{
no strict 'refs';
foreach my $entry ( keys %main:: )
{
print "$entry\n";
}
}
Вы также можете сделать
*sym = $main::{"/"}
и аналогично для других значений
Если вы хотите найти тип символа, который вы можете сделать (из освоения perl):
foreach my $entry ( keys %main:: )
{
print "-" x 30, "Name: $entry\n";
print "\tscalar is defined\n" if defined ${$entry};
print "\tarray is defined\n" if defined @{$entry};
print "\thash is defined\n" if defined %{$entry};
print "\tsub is defined\n" if defined &{$entry};
}
И это делает. Спасибо MGoDave и kbosak за ответ перед моим лицом, что я был слишком глуп, чтобы видеть (я смотрел в% main :: для начала, но пропустил, что у них не было своих сигил). Вот полный код:
#!/usr/bin/perl
use strict;
use warnings;
use PadWalker qw/peek_our peek_my/;
use Data::Dumper;
our $foo = 1;
our $bar = 2;
{
my $foo = 3;
print Dumper in_scope_variables();
}
print Dumper in_scope_variables();
sub in_scope_variables {
my %in_scope = %{peek_our(1)};
my $lexical = peek_my(1);
for my $name (keys %main::) {
my $glob = $main::{$name};
if (defined ${$glob}) {
$in_scope{'$' . $name} = ${$glob};
}
if (defined @{$glob}) {
$in_scope{'@' . $name} = [@{$glob}];
}
if (defined %{$glob}) {
$in_scope{'%' . $name} = {%{$glob}};
}
}
#lexicals hide package variables
while (my ($var, $ref) = each %$lexical) {
$in_scope{$var} = $ref;
}
return \%in_scope;
}
Вы можете сделать что-то вроде следующего, чтобы проверить таблицу символов основного пакета:
{
no strict 'refs';
for my $var (keys %{'main::'}) {
print "$var\n";
}
}