string input = "AB-PQ-EF=CD-IJ=XY-JK";
var result = new Regex(@"(?<![A-Z])(?=([A-Z]+[=-][A-Z]+))").Matches(input)
.Cast<Match>().Select(m => m.Groups[1].Value).ToArray();
foreach (var item in result)
{
Console.WriteLine(item);
}
Прежде всего, вы не должны вызывать HTTP-запрос в componentWillMount()
. Вместо этого сделайте это в componentDidMount()
, как указано в React docs
Ваш метод в порядке. Однако, основываясь на стратегии контейнерных / презентационных (smart / dump) компонентов, вам лучше выполнить всю выборку данных в компоненте <Dad />
, а затем передать необходимые данные дочерним элементам. Таким образом, было бы намного проще отслеживать ваши запросы, и ваши данные не будут разбросаны.
Альтернативой является использование сторонних библиотек, таких как Redux или Mobx State Tree . Я не уверен насчет Mobx, но Redux сохраняет его за пределами компонентов и делает его доступным для всего приложения в контексте React. Вы должны подумать об использовании этого, так как это чрезвычайно мощный и простой в освоении
И последнее, но не менее важное, я включу здесь пару постов о шаблоне контейнера / компонентов представления: