Нужно ли вызывать компоненты componentWillReceiveProps после обновления реквизита
componentWillReceiveProps(nextProps){
this.loadPosts(nextProps)**HERE YOU CAN GET UPDATED PROPS**
},
при обновлении данных в это время, вы можете получить доступ к этим данным в nextprops
Строка:
exec builtins_code in builtins.__dict__
просто добавляет _
в интерактивную среду, чтобы она повторяла последнюю оцененную переменную. Без этой строки _
не определено. Обратите внимание, что эта функция не очень полезна в сценарии и может быть удалена. Это, похоже, не связано с вашей проблемой.
Похоже, что интерес IronPython заключается в том, чтобы иметь возможность легко взаимодействовать с Microsoft / C #, но он остается «стабильным» в версии 2.7 и, вероятно, не так без ошибок, как официальные версии python (похожая ошибка была встречается и не решается на Reddit , не то чтобы это помогло, но вы знаете, что вы не единственный ...).
У него есть , чтобы быть ошибкой, потому что вы не можете удалить встроенное, если оно не переопределено:
>>> str
<type 'str'>
>>> del str
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'str' is not defined
Теперь давайте прагматично: кто-то ни за что собирается исправить эту ошибку в ближайшем будущем.
Таким образом, вы можете попытаться «восстановить» имя str
, выполнив:
str = __builtins__.get('str')
Я не проверял это, может быть, это не сработает, когда вы окажетесь в этом странном состоянии , но есть и другие обходные пути, чтобы получить «потерянные» имена классов, используя экземпляр и атрибут __class__
:
>>> "".__class__(34) # "".__class__ is str
'34'
>>> 0 .__class__(1.4) # note the space to help the parser :)
1
Единственная проблема заключается в том, что в вашем коде будет выглядеть странно. Не забывайте комментировать!
В любом случае, вам не нужно str
для этого, вы можете обойти вашу проблему, используя str.format
в строке формата (позиционной):
или по ключевому слову:
'Mines {Amount1} minerals each turn (modified by planet value).'.format(Amount1=Amount1)
Этот метод не включает встроенную функцию str
. Не говоря о том, что у вас не возникнет других проблем, но даже когда доступно str
, это один из предпочтительных способов форматирования строки.
Найдите выход, избегая таких ошибок. К счастью, исключения Python являются явными и могут быть перехвачены с хорошим отслеживанием.