我有多个来自数据库的颜色字符串。对于每种颜色,我将其转换为小写,然后以内联样式传递它:
void WriteDataPlusDateToStream( object fStream, image img, string dateStr )
{
number endian = 0
number encoding = 0
img.ImageWriteImageDataToStream(fStream,endian)
fStream.StreamWriteAsText(encoding,dateStr)
}
void ReadDataPlusDateFromStream( object fStream, image img, string &dateStr )
{
number endian = 0
number encoding = 0
img.ImageReadImageDataFromStream(fStream,endian)
fStream.StreamReadTextLine(encoding,dateStr)
}
void writeTest(string path)
{
Result("\n Writing to :" + path )
image testImg := RealImage("Test",4,100)
string dateStr;
number loop = 5;
number doAutoClose = 1
object fStream = NewStreamFromFileReference( CreateFileForWriting(path), doAutoClose )
for( number i=0; i<loop; i++ )
{
testImg = icol * random()
dateStr = GetDate(1)+"@"+GetTime(1)+"|"+Format(GetHighResTickCount(),"%.f") + "\n"
fStream.WriteDataPlusDateToStream(testImg,dateStr)
sleep(0.33)
}
}
void readTest(string path)
{
Result("\n Reading form :" + path )
image testImg := RealImage("Test",4,100)
string dateStr;
number doAutoClose = 1
object fStream = NewStreamFromFileReference( OpenFileForReading(path), doAutoClose )
while ( fStream.StreamGetPos() < fStream.StreamGetSize() )
{
fStream.ReadDataPlusDateFromStream(testImg,dateStr)
result("\n time:"+dateStr)
testImg.ImageClone().ShowImage()
}
}
string path = "C:/test.dat"
ClearResults()
writeTest(path)
readTest(path)
当传递的颜色是有效的CSS颜色字符串(如“ RED”和“ WHITE”)时,此方法很好用,但是现在我得到的时髦颜色字符串仅显示为默认白色。有没有一种方法可以更改此默认颜色,因此,如果color不是有效的字符串颜色,请改为显示其他颜色。
我检查了this solution out,但它使用的const color-picker-item = color => (
<View style={{backgroundColor: color.toLowerCase()}} />
)
不适用于react native。还有其他建议吗?
看起来无效颜色的单词也超过1个,因此我可以进行空白检查,但希望有其他解决方案!
答案 0 :(得分:0)
一个想法。
您可以做的是创建有效颜色的列表,并检查该颜色是否为有效颜色,否则将其设置为红色或您喜欢的任何颜色。您可以创建具有默认颜色的变量,也可以将其放在有效颜色列表的第一个索引中,并将其用作默认颜色。
() => {}
答案 1 :(得分:0)
这可以通过两种方式解决。我能想到的最干净的方法是对照所有有效的color关键字检查颜色。但是,如果您只想设置默认颜色,则有一种更简单的方法。
CSS!只需添加一个className,例如
<View className='defaultcolorfallback'/>
并将其添加到您的CSS中:
.defaultcolorfallback {
background-color: #123456;
}
每当提供的背景颜色出现故障时,它将回退到设置的背景颜色。
如果您不想触摸CSS,并且不介意使所有hackytackity变得肮脏,请执行以下操作:
<View style={{background: '#123456', backgroundColor: color.toLowerCase()}} />
它不是很漂亮,但是可以!