Вы можете использовать React.Children для итерации над дочерними элементами, а затем клонировать каждый элемент новыми реквизитами (неглубоким объединением), используя React.cloneElement , например:
const Child = ({ doSomething, value }) => (
doSomething(value)}>Click Me
);
class Parent extends React.PureComponent {
doSomething = (value) => {
console.log('doSomething called by child with value:', value);
}
render() {
const { children } = this.props;
const childrenWithProps = React.Children.map(children, child =>
React.cloneElement(child, { doSomething: this.doSomething }));
return {childrenWithProps}
}
};
ReactDOM.render(
,
document.getElementById('container')
);
Fiddle: https://jsfiddle.net/2q294y43/2/
Скорее всего, self.ImageDisplay
равен нулю. Поскольку он неявно разворачивается, доступ к нему будет сбой, если он равен нулю.
Вам нужно убедиться, что он подключен в вашем раскадровке / xib.
Вы принудительно разворачиваете значение перед фактической проверкой, нет ли в print(self.img!)
.
Вероятно, что развертка силы возвращает ноль и, таким образом, сбой приложения.
self.ImageDisplay.image = self.img
– Jonathan Lamptey
14 July 2018 в 21:00
ImageDisplay
. И будет другое исключение (обычно EXC_BAD_INSTRUCTION). – rmaddy 14 July 2018 в 01:13