是否可以在Render函数中循环相同的组件?
像这样的东西:
...
onPress = () => {
...
};
initialArr = [["blue","text1"],["red","text2"]];
buttonsListArr = [];
for (let i = 0; i < initialArr.length; i++)
{
buttonsListArr.push(
<Button style={{borderColor:{initialArr[i][0]}}} onPress={this.onPress.bind(this)}>{initialArr[i][1]}</Button>
);
}
...
render() {
return (
<View style={...}>
{buttonsListArr}
</View>
)};
Run Code Online (Sandbox Code Playgroud)
我的意思是这只是有限的组件列表,所以像ListView/ScrollView等任何组件都不适用于这种特殊情况.这只是语法问题.
应用指令中的所有操作:
使用"$ react-native init [project name]"创建空白React Native项目
从命令Palette(Cmd-Shift-P)中选择"Nuclide React Native:Start Packager"以启动React Native Server.
启动服务器后,您可以在应用程序开始运行时启动React Native Debugger.从命令Palette(Cmd-Shift-P)启动"Nuclide React Native:Start Debugging".
确保您位于React Native项目的根目录中,然后从命令行运行应用程序:"$ react-native run-ios"(或选择其他现有的模拟器,例如react-native run-ios - 模拟器= "的iPhone4s").(重要提示:#4应遵循#3之后,并且应关闭chrome调试器).
从iOS模拟器按Cmd-D(Linux上的Ctrl-D).这将为您的应用程序调出选项.选择"远程调试JS".
Atom版本1.15.0
核素插件版本0.214.0
React Native版本:0.42.3
平台(iOS,Android或两者兼而有之?):iOS
设备信息模拟器/设备? - 模拟器iOS 10.2/iOS 8.1
OS版本? - MacOS 10.12.3
调试/发布? - 调试
在同一个文档中说:"......从模拟应用程序启用调试(#5)后,Nuclide将自动附加到该调试过程,因为我们已经启动了上面的调试器(#3)." 在我点击"远程调试JS"之前,我看到按预期工作反应应用程序:

在我点击"Debug JS Remotely"之后,我看到Nuclide调试器将其状态从"Starting debugger ..."更改为"debugee当前正在运行".正如预期的那样:

但是,在我单击"远程调试JS"后,我只看到白屏

而且没有任何错误.一旦我关闭远程调试,一切都会再次正常加载.
这只发生在Nuclide调试器上,使用chrome调试器一切正常.
可能有人知道为什么"shadowColor"属性不适用于Android上的抽屉样式?(iOS看起来一切都好)
<Drawer
type="overlay"
...
styles={{
drawer: {shadowColor: 'black', shadowOpacity: 0.8, shadowRadius: 2}
...
}}
>
Run Code Online (Sandbox Code Playgroud)

react-native-drawer版本:2.3.0
React Native版本:0.41.2
平台(iOS,Android或两者兼而有之?):Android
设备信息模拟器/设备? - 模拟器Android 4.1(API16),模拟器Android 7.1.1(API25)
OS版本? - MacOS 10.12.3
调试/发布? - 调试
使用带有此代码的RN标准<Text>组件,我只看到"调试模式:"文本(但预期:"调试模式:真").
class ClassName extends Component {
static propTypes = {
debug: PropTypes.bool
};
render() {
return (
<View style={...}>
<Text>Debug mode: {this.props.debug}</Text>
</View>
)
}
}
const mapStateToProps = (state) => {
console.log(typeof(state.debug); //boolean
return {
debug: state.debug
}
}
export default connect(mapStateToProps)(ClassName);
Run Code Online (Sandbox Code Playgroud)
截图:
如上所述,"state.debug"是布尔类型:
console.log(typeof(state.debug)); //boolean
Run Code Online (Sandbox Code Playgroud)
问题 - 为什么布尔道具没有显示/渲染?